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
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号