有人可以解释为什么下面的代码在第12行(打印语句)产生一个错误“全局名称”foobar'未定义“?我认为我理解Python的范围,但这是给我适合。Python:没有定义全局名称'foobar'
def main():
# initialize
global foobar
foobar = Foo()
class Foo():
def __init__(self):
self.bar = Bar()
class Bar():
def __init__(self):
print foobar
#Call main() when script is executed
if __name__ == '__main__': main()
看起来你可能期待'全局foobar'来“声明”一个变量并将其初始化为默认值?变量在Python中不能以这种方式工作。所有'全局'的意思是“当你看到这个变量的赋值时,将它赋值为全局而不是本地变量”。在这样的任务发生之前,仍然没有变量。 – abarnert 2014-10-10 01:25:58