【Python】if __name__ == '__main__': 判断式解析

在python程式码有时会看到if name == 'main': 的判断式,其用途是判断目前所执行的python档案是以主程式或以模组的方式执行。

先建立一名为mod1.py的档案

def module_name_show():    print('mod1.py 的__name__名称为:', __name__)if __name__ == '__main__':    print('mod1.py 以主程式方式执行')    module_name_show()else:    print('mod1.py 以模组方式执行')

程式执行结果:

说明:

当直接执行程式时,列印出"mod1.py 以主程式方式执行",故得知其__name__的名称为__main__才会执行if条件成立的叙述。

然后再呼叫函式module_name_show()列印__name__名称。

接下来再建立一名为mod1_main.py的档案。

import mod1if __name__ == '__main__':    print('mod1_main.py的__name__名称为:',__name__)    mod1.module_name_show()

执行该mod1_main.py程式,结果如下:

由执行结果可得知:

import模组时,会先执行模组内的if判断叙述。而所列印的结果得知,是else区段,故可知其__name__名称不是__main__。

当import完后,才会执行主程式的if判断叙述。列印出所执行程式的__name__名称。列印出来为__main__。

接下来再呼叫mod1模组内的module_name_show()函式。而此时其函式所列印的__name__名称为mod1,也就是模组(档名)名称。

结论,由以上程式的示範可得知:

当直接执行该档案时,其__name__名称为: __main__。当该档案被另一个档案当模组import时,其__name__名称为该模组(档名)名称。

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章