Python:模块中的特殊变量__name__

模块中的特殊变量__name__

我们在模块内部常常会看到这样的代码:

if __name__ == '__main__':
    main()

在一个模块中,python会在模块内部创建一个变量__name__

当模块直接执行时,__name__会被赋值为__main__

当模块被导入时,__name__会被赋值为模块的名称

因此,我们可以通过__name__,使模块中的一些代码仅在直接运行时被执行,而在被导入时不执行。

例子:

  • 我的文件层级关系如下:

# myModule01.py

def function01():
    print('__name__ == __main__')
def function02():
    print('__name__ != __main__')

if __name__ == '__main__':
    function01()
if __name__ != '__main__':
    function02()

# 以下为直接运行结果
# __name__ == __main__
# 
# invoking.py

from myPac import myModule01
print(myModule01.__name__)

# 以下为运行结果
# __name__ != __main__
# myPac.myModule01
#
posted on 2021-01-23 18:58  摸鱼time  阅读(382)  评论(0编辑  收藏  举报