python的__name__什么意思,python中_name__有什么用
模块(。py文件)会在创建之初自动加载一些内置变量,__name__就是其中之一。Python模块通常定义了很多变量和函数,相当于模块中的一个函数。当模块被导入到其他文件中时,这些变量和函数可以被调用。然后,__name__的作用就凸显出来了。它可以识别模块的名称,并显示模块的某个功能是由它自己执行还是由其他文件执行。假设模块A和B,模块A自己定义函数C,模块B调用模块A,现在执行函数C:
如果C由A自己执行,即模块执行自己定义的函数,那么__name__==__main__
如果C被B调用,也就是说当前模块调用执行其他模块的功能,那么_ _ name _== a (被调用模块的名称)
其实换个说法,就是当前程序运行在哪个模块。
相关:《Python入门教程》
下面是一个例子:
首先自定义模块Student,在模块中定义函数different()。
然后自己先执行,结果如下,_ _ name _ _= _ _ main _ _
然后b调用执行,结果是__name__==Student
以上结果给出两次是因为python中的导入模块会先执行一次文件,如下图所示:
到现在可能已经有人注意到了,上面的__main__在python中是作为函数入口使用的,而实际项目中经常使用if _ _ name _= _ _ main _ _ 来表示整个项目开始运行的入口。另外,如果不希望某部分功能被其他模块调用执行,比如我的自定义模块Student中的我的密码是xxx ,只有自己执行才能打印密码。可以把所有部分都写在if语句中,只有当_ _ name _ _= _ _ main _ _ 时才能执行,可以理解为代码是if语句外的最外层,意思是“全局变量”,放到if语句中就变成私有的了。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。