zoukankan      html  css  js  c++  java
  • python中if __name__ == '__main__'是什么?

    __name____main__认识

    作用:一般用于测试程序的功能,if __name__ == '__main__':下面的代码会被执行,但当前.py文件被当做模块导入的时候,main下面的代码就不会被执行,防止测试代码被执行。

    语法:

    if __name__ == '__main__':
                要执行的测试模块
     
    

    if __name__ == "__main__":可以看成是python程序的入口,就像java中的main()方法,但不完全正确。

    .py文件中,除了def后面定义函数外的代码都会被认为是“main”方法中的内容,从而从上而下执行。

    如果只是写一个print('hello world'),那这一句话就是一个程序,因此不需要所谓的"main"方法入口,直接运行测试就可以。

    但如果是测试函数功能,我们就需要在.py文件中写上if__name__=="__main__",再调用函数,当然,如果你不写的话,也没关系,也可以直接将函数加括号进行调用。

    我们写的目的就是防止后面会把当前.py文件当做模块导入其他.py文件中,从而误触发测试代码。

    __name__的变化

    1、__name__其实就是一个内置属性,在自己的py文件中被执行,__name__属性的值就是__main__

    示例代码:

    # test.py
    print("first")
     
     
    def say_hello():
        print(__name__)
     
     
    if __name__ == '__main__':
        print(__name__)
        say_hello()
    

    运行结果:

    first
    __main__
    __main__
    

    2、将test.py文件导入其他文件中,__name__就会变为当前模块的名字,例如:__test__

    实例代码:

    # work.py
     
    import test  # 导入test
     
     
    if __name__ == '__main__':
        test.say_hello()
        print(__name__)
    

    执行结果:

    first
    test
    __main__
    

    总结:python不像JAVA中一样拥有main()方法的特点。所谓的入口其实也就是一个if条件语句,判断成功就执行下面if中的代码。JAVA等其他语言中会有特定的内置函数去识别main()方法入口,在main()方法中从上而下执行。

  • 相关阅读:
    Github精选——devops一体化监控平台工具WGCLOUD
    [搬运][中英双语]字体推荐 | 如果你每天都在代码面前,为何不让其变得有趣起来呢?
    【学习笔记】二分图最大匹配 -- 从网络流到匈牙利算法
    【详细揭秘】多重集の交错排列
    支配树口胡
    题解 洛谷 P2388 阶乘之乘
    [eJOI2019]异或橙子 题解
    VBA (Excel) 插入多行的方法 & 算法对比
    20000套免费ppt模板获取攻略
    包你扫到敬业福,集五福活动,福字大全
  • 原文地址:https://www.cnblogs.com/cnhyk/p/12410958.html
Copyright © 2011-2022 走看看