zoukankan      html  css  js  c++  java
  • python中的if __name__ == '__main__'

    一直不是很理解python中'if __name__ == '__main__':' 的作用,今天查了一下各位大神的博客,总结如下:

    if 语句有2个作用:

        1、可以在这个if下测试函数或类,这一句与c中的main()函数所表述的是一致的,即作为入口;

           (这种情况可以看我刚整理的一篇博客:http://www.cnblogs.com/llw1121/p/6669516.html)

        2、防止模块被导入时,函数或类的代码被执行2次。(下面的代码具体说明)

    当该module被其它module 引入使用时,其中的"if __name__=="__main__":"所表示的Block不会被执行,这是因为此时module被其它module引用时,其__name__的 值将发生变化,__name__的值将会是module的名字。

    因此,在python中,当一个module作为整体被执行时,moduel.__name__的值将是"__main__";而当一个 module被其它module引用时,module.__name__将是module自己的名字,当然一个module被其它module引用时,其 本身并不需要一个可执行的入口main了。可以说python中的这种用法很灵活啊。

    def spam():
        print('hello')
    print __name__
    spam()
    
    __main__
    hello
    
    
    import spam
    
    spam.spam()
    
    
    spam
    hello
    hello


    def spam():
        print('hello')
    print __name__
    if __name__ == "__main__":
    spam()
    
    __main__
    hello
    
    
    import spam
    
    spam.spam()
    
    
    spam
    hello

      

  • 相关阅读:
    NTP时间服务器
    SVN搭建以及客户端使用
    Rsync+Sersync实时同步数据目录
    Docker容器入门篇
    Perl环境安装
    Mysqldump备份问题
    Jumpserver1.4.1安装
    this指向
    polyfill之javascript函数的兼容写法——Array篇
    JavaScriptPolyfillShim 在JavaScript中Shim和Polyfill有什么区别?
  • 原文地址:https://www.cnblogs.com/llw1121/p/6669765.html
Copyright © 2011-2022 走看看