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

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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