Почему функция может изменить некоторые аргументы, как их воспринимает вызывающая сторона, но не другие? ⇐ 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 к области видимости переменных. Почему в этом примере 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 указателями? Или еще какие они?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение