您的位置:首页 > 编程语言 > Python开发

关于Python中if __name__ == "__main__"的理解

2018-03-20 22:00 781 查看
关于Python中if __name__ == "__main__"的理解:
    在学习Python语言中,遇到了if __name__ == "__main__"的理解,查阅了网上的一些资料和加上自己的理解,对该语句首先从该.py文件的直接运行到该.py文件被其他.py文件通过import等语句导入分析,然后在从私有化方面进行理解。
    第一步:我们首先创建两个.py文件,名字分别为:testOne.py和testTwo.py文件。
testOne.py内容为:
def testOne():
print("testOne方法执行")
if __name__ == "__main__":
testOne()
else:
print("testOne方法被该模块导入")testTwo.py文件内容为:
import testOne
def testTwo():
print("测试testTwo方法执行")
testOne.testOne() #调用testOne.py文件下的testOne()方法
if __name__ == "__main__":
testTwo()第二步:分别执行testOne.py文件和testTwo.py文件
1. testOne.py文件显示内容:



2. testTwo.py文件显示内容:



第三步:分析第二步为什么会这样显示编译结果,if __name__ == "__main__"的语句的作用到底是什么?
      当我们会想C语言时,C语言有一个main()函数作为程序的入口,则程序一个会从main()函数开始逐行执行,进行编译。对于Python语言的理解,if __name__ == "__main__"是为了判断本文件(即模块)是相当于C语言的主程序main()作为入口进行执行,还是该模块被其他程序import。
1.直接运行testOne.py文件时,显示如第二步1所示内容
        当编译本文件时,if __name__ == "__main__"是为了判断本文件(即模块)是相当于C语言的主程序main()作为入口进行执行
2.直接运行testTwo.py文件时,显示如第二步2所示内容
    该模块被其他程序(testTwo.py文件)import时,if __name__ == "__main__"中的方法不会被执行,会执行else:下的内容


[注]上图的else:下内容可以参考第一步中testOne.py的完整程序。第四步:if __name__ == "__main__"的另一种理解,即把 if   __name__ == "__main__":下代码块当做为私有化部分,只有本文件被执行时,才会执行该内容,当本文件被调用(import)时,不会对其他模块显示,即此代码块不对其他模块看见。总结:此为自己的理解,如有不足的地方,在下面留言,我会及时修改。我们共同学习,共同进步。一起加油!!!!

注:该程序的编写是在PyCharm软件下编译的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python __name__ __main__