У меня возникли проблемы с пониманием нечетного поведения в функциях python, если я перехожу в список. я сделал следующие функции:Ссылка на список Python в функции.
def func(x):
y = [4, 5, 6]
x = y
def funcsecond(x):
y = [4, 5, 6]
x[1] = y[1]
x = [1, 2, 3]
Когда я называю FUNC (х), а затем распечатать х, он печатает [1, 2, 3], так как х было раньше, он не приписывать список y до x. Однако, если я вызываю funcsecond (x), он присваивает 5 второй позиции x. Почему это так? Когда я назначаю весь список, он ничего не делает, но когда я назначаю только один элемент, он меняет список, изначально называемый им. Большое спасибо, и я надеюсь, что вы поймете, что я намерен сказать, мне нелегко выразить себя на английском.
Почему X внезапно становится локальным variable.It все равно должна быть ссылкой даже после назначения rit? –
'x' - это локальная переменная внутри функций, потому что она используется в аргументах (внутри заголовка функции). –
Это ссылка. Бит в 'func' эта ссылка переназначается, чтобы указать на новый объект. –