我们在模块内部常常会看到这样的代码:
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
#
原文:https://www.cnblogs.com/moyutime/p/14318611.html