• python __name__ == ‘__main__’详细解释(27)


        学习过C语言或者Java语言的盆友应该都知道程序运行必然有主程序入口main函数,而python却不同,即便没有主程序入口,程序一样可以自上而下对代码块依次运行,然后python不少开源项目或者模块中依然存在 __name__ == “__main__” 这种写法,具体是上面意思呢?

    还有这种操作

    一.语义解释

        1.__name__

        __name__ 是python的内置属性,是系统全局变量!每一个py文件都有一个属于自己的__name__:

        如果py文件作为模块被导入(import),那么__name__就是该py文件的文件名(也称 模块名);

        如果py文件直接运行时(Ctrl+Shift+F10),那么__name__默认等于字符串”__main__”;

     

        举个简单的例子:假如你名字是张三,在朋友眼中,你是张三(__name__ == '张三');在你自己眼中,你是你自己(__name__ == '__main__')

    就是有这种操作

     

        2.”__main__”

        “_ _main_ _” 实际上就是一个字符串,用来鉴别程序入口,没有太多花里胡哨的东西.

     

        3.__name__ == “__main__”

        当.py文件被直接运行 (Ctrl+Shift+F10)时, if  __name__ == “__main__”  之下的代码块将被运行,该语句就相当与python的main主函数入口,示例代码如下:

        a.新建一个 my_name.py 文件,作为模块文件:

     

        b.新建一个 python_main.py 文件,作为启动文件 (Ctrl+Shift+F10):

        输出结果:

        由此可见,作为启动文件 python_main.py ,该文件的内置属性 __name__ 等于 “__main__”,而my_name.py 作为导入模块,该模块的 __name__ 等于文件名(也称模块名字),所以my_name.py 中的 表达式 if __name__ == “__main__” 并不成立!

     

        当直接将my_name.py作为启动文件时 (Ctrl+Shift+F10),输出:

     

        如果py文件作为模块被导入(import),那么__name__就是该py文件的文件名(也称 模块名);

        如果py文件直接运行时(Ctrl+Shift+F10),那么__name__默认等于字符串”__main__”;

     

    废话多

    二.作用

        1.__name__ == “__main__” 作为启动py文件的main函数入口

        2.一个项目中必然会包含多个模块文件,每个模块文件在自己写完代码之后会做一些简单的测试用于检测bug 或者 对自己的函数调用写一个简单的示例,而恰到好处的是:__name__ == “__main__”  既不会影响你的测试代码,也不会影响别人调用你的接口函数。

     

     

    惊喜

    猜你喜欢:

        1.python模块

        2.python异常处理

        3.python return逻辑运算表达式

        4.python 字典推导式

        5.python 列表推导式

     

        转载请注明:猿说Python » python __name__ == “__main__” 详细解释

     

    技术交流、商务合作请直接联系博主
    扫码或搜索:猿说python
    python教程公众号
    猿说python
    微信公众号 扫一扫关注
  • 相关阅读:
    浅谈MVP与ModelViewViewModel(MVVM)设计模式
    策略模式
    C#验证码
    如何招到烂程序员
    承载和使用WCF服务
    .NET Remoting 使用总结
    基于.Net Remoting的应用程序
    HTML5 是什么?
    关于HTTP及XMLHTTP状态代码一览
    Remoting多个信道(Chennel)的注册问题
  • 原文地址:https://www.cnblogs.com/shuopython/p/11922641.html
Copyright © 2020-2023  润新知