当我们写的程序包含多个模块的时候,我们编写完某一个模块的代码后需要测试代码是否正确,这时可采用__name__检测
我们这里有两个模块practice1和practice2,practice1作为主模块其导入practice2中的程序。为了检测practice2中的函数编写是否正确而又不对主模块产生影响,可采用如下代码
practice2.py
def hello():
print('hello')
def goodbye():
print('goodbye')
if __name__=='__main__':
goodbye()
运行结果:
goodbye
主模块:
practice1.py
import practice2 as pr
pr.hello()
运行结果
hello
到这里我们就可以发现主模块中并没有运行practice2中的
if __name__=='__main__':
goodbye()
这是为什么呢?
答案很简单,我们在practice2.py中打印__main__的值
practice2.py
def hello():
print('hello')
def goodbye():
print('goodbye')
if __name__=='__main__':
goodbye()
print(__main__)
运行结果:
goodbye
__main__
此时practice1.py的运行结果如下:
practice2
hello
看到这里是否就能很好理解了当practice2模块作为主程序执行时其__main__值为__main__,其不作为主程序执行时其__main__值为practice2