相信初学者刚开始学习python时总会有各种各样的问题,接下来,我给大家分析一下python中的if “name” == "main"语句
刚开始学习python的时候,碰见了这个语句,翻阅了好多资料,大多说的很麻烦而且讲解不清晰,后来自己又编写代码运行测试才明白原理,话不多说,先测试一个简单的代码。
class main1():
def main(self):
print("---测试1---")
print(__name__)
if __name__ == '__main__':
print("---测试2---")
a=main1()
a.main()
运行结果
—测试2—
—测试1—
__main__
from main import main1
b=main1()
b.main()
运行结果
—测试1—
main
看完这个小程序,或许大家都明白了。在main.py文件中,if "__name__" == "__main__"
语句可有可无,不影响下面的输出结果。而在test.py文件中if "__name__" == "__main__"
上面的语句’—测试1—‘继续执行;而if "__name__" == "__main__"
下面的语句’—测试2—‘却没有执行。
为什么呢?
因为有了if "__name__" == "__main__"
这条判断语句。
在以上代码中print(__name__)
这条语句在被直接调用时和被调用时结果是不一样的。
所以我们知道了’name’变量的作用:‘name’在直接运行时输出的是’main’,而在当前文件被当模块调用时,在调用的那个文件中输出的是’文件名’。所以可以根据__name__变量的结果能够判断出,是直接执行的python脚本还是被引入执行的,从而能够有选择性的执行测试代码。