正如@DavidZ已经提到的,当我们导入整个Python文件时,它会被编译。但是另一件特殊的事情发生在解析函数体时,函数知道应该在局部范围内查找哪些变量,应该在全局范围内查找哪些变量(当然也有自由变量)。>>> import dis
>>> dis.dis(foo)
7 0 LOAD_GLOBAL 0 (Baz)
3 LOAD_FAST 0 (num)
6 CALL_FUNCTION 1
9 STORE_FAST 1 (obj)
12 LOAD_CONST 0 (None)
15 RETURN_VALUE
因此,这里Baz必须从全局范围获取。But how to identify this global scope when we import app.py in another
file?