Привет.
Читаю книгу по Питону, и вот выполняю пример:
#thismod.py
var=99
def local():
var=0
def glob1():
global var
var+=1
def glob2():
var=0
import thismod
glob.var+=1
def glob3():
var=0
import sys
glob=sys.modules['thismod']
glob.var+=1
def test():
print(var)
local()
glob1()
glob2()
glob3()
print(var)
Потом в интерактивной оболочке импортирую модуль и получаю проблему в функции glob2():
>>> import thismod
>>> thismod.test()
99
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "./thismod.py", line 27, in test
glob2()
File "./thismod.py", line 15, in glob2
glob.var+=1
NameError: global name 'glob' is not defined
>>>
Как же тогда правильно оформить вторую функцию?
Если интересно читаю книгу Лутца, стр.486
Спасибо.