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

关于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软件下编译的。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值