zoukankan      html  css  js  c++  java
  • Python中 if __name__ == "__main__" 的理解

    1、if __name__ == "__main__"

      我们在python代码中经常可以看见者行代码,但是当我们进行练习的时候发现,这行删除和添加这行代码貌似对程序的运行并无什么影响,那为什么要加这行代码?

    2、主函数

      主函数这个概念可以理解为程序的入口,在代码中 if  __name__ == "__main__" 就是主函数,代表程序的入口;

      例1:

      

    def demo1(x,y):
        return x+y
    def demo2(x,y):
        return x-y
    def demo3(x,y):
        return x*y
    def demo4(x,y):
        return x/y

      这是由多个函数组成的代码,当我们需要调用其中的一个时,例如:

    demo1()

      我们运行程序,程序就会从上而下的依次运行,运行至最下面调用函数demo1()时,则会返回查找demo1()函数并执行,这个操作就会非常的繁琐,这里就用到了主函数

      例2:

    def demo1(x,y):
        return x+y
    def demo2(x,y):
        return x-y
    def demo3(x,y):
        return x*y
    def demo4(x,y):
        return x/y
    if __name__ == "__main__":
        demo1()

      程序就会从主函数开始运行,调用demo1(),然后返回函数查找demo1()函数

    3、模块导入

      在写一个程序时,导入模块是非常常见的现象,但是我们有的代码不想被导入调用执行,那么也可以用到 if __name__ == "__main__"

      

    #模块A
    demo = 'A'
    print('模块A')
    print(demo)
    模块B
    import 模块A
    test = 'B'
    print('模块B')
    print(test)

      运行模块B的结果为:

      模块A

      ‘A’

      模块B

      ‘B’

      当我们使用 if __name__ == "__main__"对模块A进行修改时:

    #模块A
    demo = 'A'
    print('模块A')
    print(demo)
    if __name__ == "__main":
        print(demo)

      再次执行B返回结果为:

      模块A

      模块B

      ‘B’

      因为demo = 'A'处于 if __name__ == "__main__" 的内部,所以只有运行模块A时才会执行

    4、__name__ 与 __main__

      __name__是python的内置属性,通过if __name__ == "__main__",将内置__name__属性置换为__main__

      以上是博主学习过程中的总结,如果哪里有不对可能是我没有理解到位,希望各位大神留言!

  • 相关阅读:
    nyoj----522 Interval (简单树状数组)
    HDUOJ-----2838Cow Sorting(组合树状数组)
    HDUOJ---2642Stars(二维树状数组)
    HDUOJ -----Color the ball
    ACM遇到的问题与解决方案
    ELK架构下利用Kafka Group实现Logstash的高可用
    Linux给力的Shell命令
    i18n 语言码和对应的语言库
    jar启动脚本shell
    持续集成和部署工具GOCD
  • 原文地址:https://www.cnblogs.com/twlr/p/12291606.html
Copyright © 2011-2022 走看看