if __name__=='__main__'在Python代码中常见,一直不是很明白这个的用法,最近在学习测试开发刚好提到这点,就把这个知识点记录下来吧。
个人理解如下:每个.py文件的__name__都的等于__main__,当且仅当__nam__为__main__的时候才执行if语句的代码。也就是说,只有在当前.py执行的时候才会运行if语句的代码,如果是B.py是被当前A.py文件调用的,则被调用的B.py文件的if语句的代码是不会被调用的,因为被调用的B.py的__name__在此时是为B,而不是__main__,A.py的__name__才为__main__。
举例1:
test01.py源码如下:
class TestModule:
def test_01(self):
print("这是01方法!")
def test_02(self):
print("这是02方法!")
print(__name__)
test02.py源码如下:
from test01 import TestModule
if __name__=='__main__':
tm1 = TestModule()
在运行test02.py的时候,输出test01.py的__name__
举例2:
test01.py源代码如下:
class TestModule:
def test_01(self):
print("这是01方法!")
def test_02(self):
print("这是02方法!")
if __name__=='__main__':
tm = TestModule()
tm.test_01()
tm.test_02()
test02.py源代码如下:
from test01 import TestModule
if __name__=='__main__':
tm1 = TestModule()
tm1.test_01()
tm1.test_02()
运行test02.py,只有test02.py的tm1.test_01()和tm1.test_02()被运行了。