У меня есть глобальные переменные, которые я использую в качестве переменной по умолчанию.В зависимости от того, что происходит в моей программе, мне нужна возможность изменить эти значения по умолчанию и сохранить эти изменения в оставшейся части моего кода.Я хочу, чтобы они менялись и определялись везде, поэтому я использовал глобальную переменную.Вот некоторый тестовый код, который показывает, как я пытаюсь изменить эти переменные.
Когда я делаю это, у меня возникают следующие проблемы ...
- Программа думает, что
myGlobal
не был определен в основном.Но это так.Зачем? - Когда я вызываю подпрограмму после того, как я изменил
myGlobal
.Я не хотел, чтобы это произошло.
Как правильно выполнить то, что я пытаюсь сделать здесь?Примеры?
#!/usr/bin/python
import sys
myGlobal = "foo"
print "********************"
print "MyGlobal %s" % myGlobal
print "********************"
def main(argv):
#UnboundLocalError: local variable 'myGlobal' referenced before assignment
print '1. Printing the global again: ' + myGlobal
myGlobal = "bar"
print "2. Change the global and print again: " + myGlobal
# now call a subroutine
mySub()
# Checks for output file, if it doesn't exist creates one
def mySub():
# Why isn't the global "bar" not "foo"?
print '3. Printing the global again: ' + myGlobal
myGlobal = "black sheep"
print "4. Change the global and print again: " + myGlobal
if __name__ == "__main__":
main(sys.argv[1:])