博客园  :: 首页  :: 管理

关于对python脚本中的__name__ == '__main__'的理解

Posted on 2020-09-29 13:17  520_1351  阅读(327)  评论(0编辑  收藏  举报

虽然一直知道这一段的作用,但是一直对这一句还是比较模糊,收集资料详细理解之后与大家分享。

这段代码的功能,首先得知道__name__是python的一个内置变量,另外一个python的文件有两种使用的方法,

第一是自身直接作为脚本执行,第二是import到其他的python脚本中被调用(模块重用)执行

 

1、当脚本作为一个脚本模块单独执行时,__name__变量的值就是字符串__main__ 可以通过如下命令在脚本中输出验证

print(__name__)               #直接运行脚本,将输出其值为字符串:__main__

2、而当脚本是作为模块导入到其他程序文件中,被导入的脚本中的__name__就是脚本的名称(去除.py后缀之后的),如下:

#第一步创建 aa.py,内容如下:
def author_info():
    print("My blog's url is https://www.cnblogs.com/5201351")


if __name__=='__main__':
    print("My name is aa.py")
else:
    print("I was executed by import and the value of __name__  is  "+__name__)


#第二步,创建bb.py,写入import aa,内容如下:
import aa

测试方法,运行aa.py脚本,会输出 My name is aa.py

运行bb.py时(通过import导入aa.py),会输出 I was executed by import and the value of __name__  is  aa

 

另:在此额外记录两点: 

1、如要让其他地方能import自己,文件名建议为xxx.py,导入时写xxx即可,笔者测试,文件名取特殊的xxx.py.py不能被导入

2、import的模块,只会执行那个脚本一次,如在文件中,两次import aa,只会执行aa.py脚本一次!

 

 

 

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/13749140.html