if __name__ == '__main__'

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


 
 
posted @ 2020-01-13 16:48  东方无解  阅读(174)  评论(0编辑  收藏  举报