python :“__name__”与“__main__”

 

看到现在也许心中还是疑惑,那么现在我们来说一说“if__name__=='__main__':”的原理。

“__name__”是Python的内置变量,用于指代当前模块。我们修改上面用到的A模块和B模块,在模块中分别输出模块的名称:

模块A:

# 模块A

print('你好,我是模块A……')

print('模块A中__name__的值:{}'.format(__name__))

print('-------------------------')

模块B:

# 模块B

from package01 import A

print('你好,我是模块B……')

print('模块B中__name__的值:{}'.format(__name__))

执行A模块时,输出结果:

你好我是模块A……
模块A中__name__的值__main__
-------------------------

执行B模块时,输出结果:

你好,我是模块A……
模块A中__name__的值:package01.A
-------------------------
你好,我是模块B……
模块B中__name__的值:__main__

发现神奇之处了吗?当哪个模块被直接执行时,该模块“__name__”的值就是“__main__”,当被导入另一模块时,“__name__”的值就是模块的真实名称。用一个类比来解释一下:记得小时候要轮流打算教室,轮到自己的时候(模块被直接执行的时候),我们会说今天是“我”(__main__)值日,称呼其他人时,我们就会直接喊他们的名字。所以,“__main__”就相当于当事人,或者说第一人称的“我”。

所以,当运行“if __name__=='__main__':”语句时,如果当前模块时被直接执行,__name__的值就是__main__,条件判

 

 

作者:初识CV
链接:https://www.zhihu.com/question/49136398/answer/1654722335
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

posted @ 2021-08-31 14:26  蓄芳  阅读(116)  评论(0)    收藏  举报