Python中的if __name__ == "__main__" 与C语言中的main( )的区别

 

1 PI = 3.14
2 
3 def main():
4     print("PI:", PI)
5     
6 if __name__=="__main__":    #:当此.py文件被直接运行,此行下的代码块被运行,当.py文件以模块包的形式被调用或导入时,则此行下的代码块不被运行(方便作为包调用执行,比如你只想调用其中一个参数)
7     main()
8 
9 # 运行结果:PI: 3.14

 首先明确一点, 任何语言都需要一个执行顺序

1. python是 从第一行开始,逐行执行

2. C语言是 从main( )下面逐行执行

 

python中 if __name__=="__main__" 是一种模块执行策略

 

和C语言中main函数作为程序执行入口(运行一个程序总要告诉我从哪里开始吧??), 之所以是main( ) 是因为链接器的实现(分配销毁策略)里用的是main,直接涉及到下游的执行入口.

 

 

1、python的模块文件有两种执行方式

  1.直接作为脚本执行

  2.被导入(import)到其他的模块文件中被间接执行。

 

 

2、执行的原理

每个python模块都包含内置的变量__name__,

当模块被直接执行的时候,__name__等于文件名__name__ == 'main’();

如果被import到其他模块中被间接执行,则__name__  == " package_*.module_name ",即当模块被间接执行时,if __name__ == '__main__’下的代码不会被执行。

 

posted @ 2018-10-12 18:12  Parallax  阅读(326)  评论(0编辑  收藏  举报