为什么顶部的 print() 语句会在后面的代码行之后打印到控制台

Why would the top print() statement print to the console after a later line of code

code output

one.func() returns输出"top level one.py" and "one.py已经imported 出现在输出行“top level two.py”之前。

import one
print("top level two.py")

one.func() 

if __name__ == '__main__':
    print("two.py being run directly")

else:
    print("two is being imported")'''

one.py模块是:


def func():
    print("func in one.py")


print("top level one.py")

if __name__ == '__main__':
    print("one.py is being run directly")
else:
    print("one.py has been imported")

这是因为您在打印“顶层two.py”之前导入了一个。如果 one.py 看起来像这样:

print("top level one.py")

def func():
    #do something 

if __name__ == '__main__':
    print("one.py being run directly")

else:
    print("one.py has been imported")

并且使用上面的 two.py 代码,那么 one.py 在导入时首先是 运行。
因为第一个 运行ning 在前,所以它的打印语句将在两个打印之前发生,所以它们会先出现。