Почему одна и та же переменная бывает разной?
Посмотрите на этот код: x = 10
def show():
x = 20
print(x)
show()
print(x) Что он выведет? 20
10 Но постойте. Как такое вообще возможно? В программе есть переменная x. Сначала мы присвоили ей 10, а потом внутри функции присвоили ей 20. Если x - это имя, связанное с объектом, почему после вызова функции оно снова указывает на 10? Неужели Python каким-то образом вернул старое значение? Нет. Никакого возврата не произошло. На самом деле в этой программе существуют два разных имени x. В предыдущей статье мы познакомились с пространствами имён. Имя не существует само по себе. Оно находится внутри некоторого пространства имён и связывается там с объектом...