• 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


     
     
  • 相关阅读:
    拦截器
    git和bootstrap
    java面试题目
    Struts2笔记
    sql语句的面试题
    公司面试总结
    面试题12 包含 min 函数的栈 【栈】
    面试题11 字符串的排列[算法]
    [面试] 进程和线程的区别(面试题)
    [baidu] 面向对象的三个基本要素和五项基本设计原则
  • 原文地址:https://www.cnblogs.com/slyy/p/12188049.html
Copyright © 2020-2023  润新知