Я думал, что могу обновить переменную, указанную в верхней части скрипта Python, внутри функции, но это неверно. Мне удается сделать это с помощью global
:Как обрабатывать переменную область элегантно в Python?
count = 0
def updateCount():
global count
print count
count = (count+1)%10
for x in xrange(10):
updateCount()
Это лучший способ справиться с этим (функция обновления переменной на более высоком уровне)? Что такое «питонический» способ борьбы с этим. глобальный кажется немного свободным.
Также, пожалуйста, дайте мне знать, если об этом уже ответили, и я закрою вопрос. Я читал довольно много ответов, уже опубликованных близко к проблеме, но не совсем там.
Используйте возвращаемое значение функций: например, 'count = updateCount (count)'. Для состояния, которое должно быть сохранено (и, возможно, мутировано), рассмотрите объекты для хранения таких данных. – user2246674
Просто не используйте глобальную переменную. Язык преднамеренно разработан, чтобы вам было трудно переназначить имена в глобальном пространстве имен в функции, поэтому зачем бороться с ним? Либо переопределите глобальную переменную явно в глобальной области, написав «updateCount», чтобы иметь параметр и присваивание 'count = updateCount (count)', или использовать изменяемый объект с методами для изменения своего собственного состояния (приращение атрибута 'count' в твоем случае). –
Самый пифонический путь - это не использование глобальных переменных. – Hyperboreus