Почему функция может изменить некоторые аргументы, как их воспринимает вызывающая сторона, но не другие?Python

Программы на Python
Гость
Почему функция может изменить некоторые аргументы, как их воспринимает вызывающая сторона, но не другие?

Сообщение Гость »


Я пытаюсь понять подход Python к области видимости переменных. Почему в этом примере f() может изменить значение x, воспринимаемое внутри main(), но не значение n?

def f(n, x): п = 2 x.append(4) print('В f():', n, x) защита основной(): п = 1 х = [0,1,2,3] print('До:', n, x) е(п, х) print('После: ', n, x) основной() Выход:

До: 1 [0, 1, 2, 3] В f(): 2 [0, 1, 2, 3, 4] После: 1 [0, 1, 2, 3, 4] См. также:
[*]Как передать переменную по ссылке? [*]Являются ли переменные Python указателями? Или еще какие они?

Вернуться в «Python»