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

      

  • 相关阅读:
    fenby C语言P21
    fenby C语言 P20
    fenby C语言 P19
    fenby C语言 P18
    fenby C语言 P17
    fenby C语言 P16
    fenby C语言 P15
    fenby C语言 P14
    Python学习之路:subprocess模块和面向对象
    Python学习之路:XML模块
  • 原文地址:https://www.cnblogs.com/llw1121/p/6669765.html
Copyright © 2011-2022 走看看