Переменная Шредингера (ч.3)
Поскольку x это глобальное значение, мы можем изменить значение, которое funcs будет искать и возвращать, обновив x.
Чтобы получить желаемое поведение, вы можете передать переменную цикла в качестве именованной переменной в функцию. Почему это работает? Потому что это определит переменную внутри области видимости функции. Он больше не будет обращаться к окружающей (глобальной) области видимости для поиска значений переменных, но создаст локальную переменную, которая хранит значение x на данный момент времени.
Разъяснивший Python
Post #4664
353
