当前运行的程序,其 name 的值为 main,而导入到当前程序中的模块,其 name 值为自己的模块名。
因此,if name == ‘main’: 的作用是确保只有单独运行该模块时,此表达式才成立,才可以进入此判断语法,执行其中的测试代码;反之,如果只是作为模块导入到其他程序文件中,则此表达式将不成立,运行其它程序时,也就不会执行该判断语句中的测试代码。
举例说明:
#demo.py
def sum(a,b):
return a+b
print(sum(3,4))
if __name__=='__main__':
print(sum(3,2))
print('This is demo')
执行demo.py,得到的结果为:
将demo模块,导入current模块中
#current.py
import demo
print(demo.sum(5,6))
执行current.py,得到的结果为:
可以发现:在执行current.py时,demo模块中的if语句下的内容并未执行。
总结: