1、不使用if __name__ == '__main__'代码。
1)第一段代码:直接新建两个python文件;
(1)新建const.py
PI = 3.14 def const(): print('const.py file of PI:', PI) const()
结果:
const.py file of PI: 3.14
(2)新建area.py
from const import PI def calc_route_area(radius): return PI * (radius ** 2) def area(): print('area.py of routd area:', calc_route_area(2)) area()
结果:
const.py file of PI: 3.14
area.py of routd area: 12.56
area.py主动调用const.py的结果:
执行代码结果:
const.py file of PI: 3.14
area.py of routd area: 12.56
第一段代码area.py调用const.py内的PI变量,执行两次;
第一次,是直接运行了const.py内的main()函数,
第二次,是area.py调用const.py内的变量进行运算。
2、第二段代码:使用if __name__ == '__main__'代码。
1)直接新建两个python文件;
from const import PI def calc_route_area(radius): return PI * (radius ** 2) def area(): print('area.py of routd area:', calc_route_area(2)) if __name__ == 'main': area()
area.py主动调用const.py的结果:
执行代码结果:
const.py file of PI: 3.14
area.py of routd area: 12.56
第二段代码area.py调用const.py内的PI变量,仅执行一次,着色的红色区域未再出现。
from const import PI def calc_route_area(radius): return PI * (radius ** 2) def area(): print('area.py of routd area:', calc_route_area(2)) area() print(__name__) print('-----------------分隔符---------------') if __name__ == '__main__': area() print(__name__)
结果:
const.py file of PI: 3.14 const area.py of routd area: 12.56 __main__ --------分隔符-------- area.py of routd area: 12.56 __main__
总结:
1、const.py作为__main__主函数时,才打印结果信息。在const.py代码末尾追加print(__name__)查看
2、const.py如果仅仅被其他函数调用时,自己不输出任何结果信息。在area.py代码加入末尾追加print(__name__),会看到const文件形式存在,不是__main__的文件形式
3、主要的作用时作为测试使用,area.py运行时,不想让const.py的代码运行且显示任何的结果。
参考文档:https://www.cnblogs.com/yaohong/p/8660209.html