Python 中If __name__==’__main__’解读

Python代码中,我们经常会看到如下的代码段:

def main ():
    pass
if __name__=='__main__':
    main()

if __name__=='__main__'究竟是什么意思,下面结合代码实例,对其进行解读.首先看test.py程序:

test.py

print(__name__)
'''
def main ():
    pass
if __name__=='__main__':
    main()
'''

Test.py的执行结果如下所示:

打印出__name__,得到的结果是__main__.这说明,Python在执行代码的时候设置了一些特殊变量,显然name就是这样的特殊变量之一,当Python直接运行一个Python代码的时候,将name特殊变量置为main.

再编写一个test_1.py文件,在这个文件中只有一行import 代码,调用test.py

import test

 在test_1.py中调用test.py,执行的结果为:

当Python通过调用的但是执行一个Python文件的时候,被调用的Python文件中的name被置为文件本来的名字,在我的程序中就是test.

因此if __name__=='__main__',用来判断这个Python文件是否被直接执行,如果是直接执行则运行if下的代码,如果是调用执行,则运行else之后的代码.通过下面的两个文件说明.

first_model.py

print("永远都会被执行的一行print代码")
def main() :
    print("这个程序被直接执行")
   pass
if __name__=='__main__':
    main()
else:
    print("这个程序被调用执行")

直接执行first_model.py的结果为:

 second_model.py 在second_model.py中调用first_model

import first_model as fm
fm.main()

 执行结果为:

猜你喜欢

转载自blog.csdn.net/u014285910/article/details/86189912