Вне функции переменную объявлять global незачем, хотя в некоторых примерах так делают, но это бестолково. Внутри каждой функции, в таких случаях, нужно объявлять только тогда, когда присваиваешь ей значение. Если же переменная внутри функции юзается только для чтения, то объявлять не нужно, и так ясно, она ведь уже была создана, а вот в случае присваивания значения- другое дело, ведь внутри функции без особой инструкции создается локальная переменная, видимая лишь внутри этой функции, пусть даже с таким-же именем, как и глобальная в другом месте, но в разных пространствах имен.
-------------
добавлено в 09.23: вообще эти global многие ненавидят. Вот ты можешь создать пустой класс
class C: pass
pss = C() # инстанс
теперь можешь с ним работать:
pss.state = 1, переменная pss.state не нуждается в инструкции global.
ответ опубликован:
- 5
- 1
- 2
- 3
- 4
- 5

