__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)
新手上路,多谢指教!