if __name__ == '__main__' 这段代码怎么理解???

__name__是内置变量,可用于表示当前模块的名字,而“__main__”等于当前执行文件的名称。 两个名称搞不清不要紧,往下看待会解释python

 

对不少编程语言来讲,程序都须要一个入口,例如C系列、Java,都须要有一个main函数做为程序的入口,而python做为脚本语言则不同,从第一行就开始执行,并无统一的入口。编程

一个python的文件有两种使用的方法,第一是直接做为脚本直接执行,第二是import到其余的python脚本中做为模块被调用执行。可是在被看成模块导入的时候总有一部分代码是不但愿被运行的,而   if __name__ == '__main__' :  的做用就是控制两种状况下代码的运行。   
编程语言

print(__name__) print("this is song ") if __name__=='__main__': print("this is songsong ")

此时   if __name__=='__main__':   以前的语句被执行,以后的语句也被执行函数

 

第二种状况被导入其余文件调用this

from practice import b

小提示:此处导入了第一个文件,因此会执行第一个文件的代码,不要问为何第二个文件没代码spa

此时  if __name__=='__main__':   以前的语句被执行,以后的语句没有被执行code

小结:文件直接运行时,if __name__=='__main__':以后的语句会被执行;当文件被看成模块导入到其余文件时,if __name__=='__main__':以后的语句不会被执行blog

 

此时回到第一行,开始解释!io

上述两个文件第一个  print(__name__)  结果为__main__,第二个print(__name__)结果为practice.bclass

__main__不管什么时候都是表示当前执行文件的名字,而__name__表示当前模块的名字

若是没有引用模块直接执行文件,__name__就等于__main__;若是导入了模块,__name__就等于模块名(例如:practice.b)

 

新手上路,多谢指教!

相关文章
相关标签/搜索