解释器开始逐行解释文件。
如果遇到函数定义,则将其添加到
全局变量
如果遇到函数调用,它会在
全局变量
听写并执行或失败。
def foo():
print "hello"
foo()
def test()
print "test"
print "global_string"
if __name__ == "__main__":
print "executed"
else:
print "imported"
产量
hello
global_string
executed
-
解释器从一开始就开始逐行解释foo.py,就像它添加到globals dict的函数定义一样,然后它遇到对函数的调用
foo()
执行它以便打印
hello
.
-
之后,它又补充道
test()
到全局dict,但是没有对该函数的函数调用,因此它不会执行该函数。
-
之后,将执行print语句
global_string
.
-
之后,如果条件将执行,在这种情况下,它将匹配并打印
executed
.