Python中 if __name__ == "__main__" 的理解

Posted 良人仍未归~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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__

 

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

 

以上是关于Python中 if __name__ == "__main__" 的理解的主要内容,如果未能解决你的问题,请参考以下文章

python 进程队列

python 进程数据通信

python 多线程之Queue

Python 基于队列的进程通信

python中if __name__ == '__main__':

Python中 if __name__ == '__main__' 的作用