У меня есть метод, который не содержит циклов. Я передаю список в этот метод. Поручаю пополнится значение на этом фрагменте кода:Почему я не могу изменить список в методе?
def do_paging(pageable_list):
pageable_list = pageable_list[start:end]
В вызывающем коде:
do_paging(source_list)
но не выглядеть source_list
получает изменилось. Если я вернусь pageable_list
от do_paging()
, все будет здорово. Являются ли аргументы массива неизменяемыми?
Я начал возвращать значение, потому что это лучше. Но я удивлен и хотел бы знать, что происходит.
EDIT - как я мог программировать Python в течение года и не знал этого!
Аргументы в Python всегда передаются по значению. Вы просто затеняете аргумент, определяя новое имя 'pageable_list'. –
Вы не изменяете список, вы создаете новый список. Чтобы изменить список, вы должны изменить список. Например, 'pageable_list.append (" something ")' будет изменять список. –
Пожалуйста, прочтите следующее: http: // stackoverflow.com/a/986145/2670792 – Christian