20210521 py文件不同的执行方式
作者:互联网
如何区分一个py文件是被作为主程序执行,还是作为一个模块被导入到其他文件中使用呢?
要区分一个文件是作为主程序执行还是作为模块被导入,需要用到模块的__name__属性。
1-1 py1.py
def sum(a,b):
return a+b
mysum = sum(1,2)
print('1+2=',mysum)
print('Module Name:',__name__) # 这是一个魔术属性,是python的内置属性
-->
1+2= 3
Module Name: __main__
# # py1 作为主程序使用时,打印的结果是 __main__
1-2 py2.py
from py1 import sum
a = sum(4,5)
print(a)
--->
1+2= 3
Module Name: py1
9
# 所以同一个文件,作为主程序执行和作为模块被导入的时候,__name__属性的值是不同的
# 通常写法是
if __name__ == '__main__': # 说明当前文件被作为主程序执行
2-1 py1.py
def sum(a,b):
return a+b
if __name__ == '__main__':
mysum = sum(1,2)
print('1+2=',mysum)
print('Module Name:',__name__)
# 运行 py1.py 得到以下结果
--->
1+2= 3
Module Name: __main__
2-1-2 将 py1.py 作为被导入的模块
from py1 import sum
a = sum(4,5)
print(a)
--->
9
# 这时只显示 a 的值
我们可以通过if __name__ == '__main__':来区分当前模块的使用方式。
标签:__,文件,20210521,name,py1,sum,py,print 来源: https://blog.51cto.com/u_15149862/2800977