• if __name__ == '__main__'


    The simplest explanation for the __name__ variable (imho) is the following:

    Create the following files.

    # a.py
    import b
    
    # b.py
    print "Hello World from %s!" % __name__
    
    if __name__ == '__main__':
        print "Hello World again from %s!" % __name__
    

    Running them will get you this output:

    $ python a.py
    Hello World from b!
    

    As you can see, when a module is imported, Python sets globals()['__name__'] in this module to the module's name.

    $ python b.py
    Hello World from __main__!
    Hello World again from __main__!
    

    As you can see, when a file is executed, Python sets globals()['__name__'] in this file to __main__.

    之所以要有__name__ == '__main__'这个语句是因为:

    有时候我们需要 直接运行 一个模块,有时候我们需要 引入 一个模块而不是直接运行。加入这条语句,可以区别这个模板被直接运行和被引入两种下情况 不同执行效果

    first_module.py

    print ("First Module's Name: {}".format(__name__))
    

    输出结果:

    First Module's Name: main

    second_module.py

    import first_module
    
    print ("Second Module's Name: {}".format(__name__))
    
    

    输出结果:

    First Module's Name: first_module
    Second Module's Name: main

    如果 first_module.py

    def main():
        print ("First Module's Name: {}".format(__name__))
    
    if __name__ == '__main__':
        main()
    

    输出结果:

    First Module's Name: main

    这时如果 second_module.py

    import first_module
    
    print ("Second Module's Name: {}".format(__name__))
    

    输出结果:

    Second Module's Name: main

  • 相关阅读:
    javaScirpt学习之事件
    验证表单内容之后如何阻止表单提交
    利用js制作异步验证ajax方法()
    Ajax制作无刷新评论系统
    ajax查询数据的举例
    以Ajax的方式访问数据库
    jquery中的全局事件
    jquery序列化元素
    jquery中的ajax
    jquery与ajax的应用
  • 原文地址:https://www.cnblogs.com/yaos/p/7009255.html
Copyright © 2020-2023  润新知