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

Winterto0 2020-02-10

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__

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

相关推荐