Интересно, если какой-либо питона люди могут просветить меня о том, как/почему происходит следующее:Python локальная переменная изменяется другим методом
# define a list and send it as an arg to another function
def foo():
nums=[1,2,3]
bar(nums)
print(nums)
# Take the list as an arg and pop the last element off
def bar(numbrs):
numbrs.pop()
# Call the first function
foo()
# The nums local variable has been modified
[1, 2]
В rubyist я считаю, это действительно странно, что локально определенные переменной (nums) в функции foo может быть изменено действием, выполняемым в функции бара! Является ли такая запутанность нормальной? Есть ли имя для этого?
Эти две функции не используют одно и то же имя для ссылки на список. Это очень странно. Мне вроде как нравится.
это ставит странное чувство в моем желудок – TehTris