Найти - Пользователи
Полная версия: Почему в функции меняется глобальная переменная, если я меняю в ней значение через индекс?
Начало » Python для новичков » Почему в функции меняется глобальная переменная, если я меняю в ней значение через индекс?
1
Karalov86
Python. Почему в функции меняется глобальная переменная, если я меняю в ней значение через индекс? Ведь обычно нужно объявлять глобальную переменную
a = [1,2,3]
def song():
   a[1] = 4
   print(a)
song()
print(a)
#[1, 2, 3]
#[1, 4, 3]
#[1, 4, 3]
Puten
Если с инглишом проблем нету, то объяснение можно почитать тут

Если в функции создать переменную с таким же именем, то она будет локальной, если обращаться с глобальной переменной (без писания global в функции), то она будет изменяться.

Можете в функции создать
a = []
, увидите, что список не поменялся, т.к. просто создается локальная переменная с тем же именем, а если обращаться к списку, то он изменится, т.к. виден во всех объектах ( в данном случае в функции).

Почитайте еще раз про области видимости.
Надеюсь понятно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB