关于if__name__=='__main__':

网上相关的解释很多,有两篇文章与回答讲得比较清晰。

stackoverflow上的回答
一个回答者的举例

结合两个文章来看,当你直接运行当前这个A.module时,其中的name这个变量的值就被设定为了"main";而假设如果你从B.module中导入这个A.module时,A.module中的name变量就会被设定为A.module的名称,也就是A。

有一种常用的情况使用if__name__=='main'
语句:当我们想一个语句只在module独立运行时执行,而不允许其在其他模块引用时执行,我们就可以使用这个语句。

#!/usr/bin/python
# Filename: using_name.py


if __name__ == '__main__':
    print 'This program is being run by itself'
else:
    print 'I am being imported from another module'
                
$ python using_name.py
This program is being run by itself

$ python
>>> import using_name
I am being imported from another module
#输出I am being ....是因为using_name.py是作为其他module导入的
所以它的__name__被改为它的模块名,
也就是__name__='using_name',不再是'__main__'所以执行了else语句。
>>>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。