有人可以解釋爲什麼下面的代碼在第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