Winterto0 2020-02-10
我们在python代码中经常可以看见者行代码,但是当我们进行练习的时候发现,这行删除和添加这行代码貌似对程序的运行并无什么影响,那为什么要加这行代码?
主函数这个概念可以理解为程序的入口,在代码中 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()函数
在写一个程序时,导入模块是非常常见的现象,但是我们有的代码不想被导入调用执行,那么也可以用到 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时才会执行
__name__是python的内置属性,通过if __name__ == "__main__",将内置__name__属性置换为__main__
以上是博主学习过程中的总结,如果哪里有不对可能是我没有理解到位,希望各位大神留言!