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