学无先后,达者为师

网站首页 编程语言 正文

关于python中if __name=‘__main__‘的理解

作者:bingoCoder 更新时间: 2022-04-01 编程语言

关于’__name __’

首先创建两个py文件A.py和B.py,我们来看一下他们各自的‘__name __’属性。

A.py

print('this is A.my __name__ is: '+__name__)

B.py

print('this is B.my __name__ is: '+__name__)

输出结果如下:
name属性
由此可见它们的__name__属性都是__main__。如果我们在A中引入B,即
在A的文件中加入import B语句。再看一下各自的__name__属性。
A.py:

import B
print('this is A.my __name__ is: '+__name__)

执行结果:
在这里插入图片描述
当B被引入时,B的__name__属性变成了自己的文件名,A依然是__main__。

为什么要使用 if __name __ == ‘__main’

可以看到刚才A在导入B的时候,B中的输出语句被自动执行了,这显然不是我们想看到的。一个py文件作为模块被导入的时,其中的函数会自动执行。在B.py中加入 if__name__ == ‘main’ 。把B中的print语句写在if 判断的下面。

if __name__  ==  '__main__' :
    print('this is B.my __name__ is: '+__name__)

再次执行A。结果如下:
在这里插入图片描述
这次执行结果中就没有了B的输出语句。在设计一个被其他文件引入的模块时,可以将函数调用语句放到 if__name__ == ‘main’ 下面。这样import模块时就不会自动执行了。因为被引入的模块的 name__属性是文件名,不是__main___。
以上是我的粗浅理解。

原文链接:https://blog.csdn.net/bingocoder/article/details/121116173

栏目分类
最近更新