粗略来讲,__name__是当前模块,当模块被直接运行时模块名为__main__。这句话的意思是,当模块被直接执行时,代码将运行,当模块是被导入时,代码不被运行
例如,执行one.py
1 # file one.py 2 def func(): 3 print("func() in one.py") 4 5 print("top-level in one.py") 6 7 if __name__ == "__main__": 8 print("one.py is being run directly") 9 else: 10 print("one.py is being imported into another module")
运行结果:
执行two.py:
1 # file two.py 2 import one 3 4 print("top-level in two.py") 5 one.func() 6 7 if __name__ == "__main__": 8 print("two.py is being run directly") 9 else:
运行结果: