Вопрос Python. Почему в функции меняется глобальная переменная, если я меняю в ней значение через индекс?

Регистрация
7 Сен 2013
Сообщения
72
Репутация
0
Спасибо
0
Монет
0
Python. Почему в функции меняется глобальная переменная, если я меняю в ней значение через индекс? Ведь обычно нужно объявлять глобальную переменную
a = [1,2,3]
def song():
a[1] = 4
print(a)
song()
print(a)
#[1, 2, 3]
#[1, 4, 3]
#[1, 4, 3]
 
А есть разница в том как менять переменную, через индекс там или ещё что? В процедуре написано "изменить глобальную переменную". Вы эту процедуру вызываете. Переменная честно меняется. Я бы удивился, не изменись она.
 
потому что ты меняешь ГЛОБАЛЬНУЮ переменную из основного кода которая видна внутри любой функции. а вот локальную переменную обьявленную в функции ты изменить не сможешь ни в основном коде ни в другой функции пока не обьявишь ее как глобальную
 
Назад
Сверху