Python中if __name__ == "__main__"理解

.py文件有两种执行方式:1、直接被执行;2、作为模块被导入。

__name__为模块内置属性,也可以理解为调用方式。

如果等于__main__就表示直接调用文件

if __name__ == ‘__main__’:可理解为如果该文件作为模块被调用的时候,if后的代码不执行;若直接执行文件,则执行if后的代码

如:

 # test.py

def c2f(cel):
fah = cel*1.8 + 32
return fah


def f2c(fah):
cel = (fah - 32)/1.8
return cel


def test():
print('测试 .0摄氏度 = %.2f华氏度' % c2f(0))
print('测试 .0华氏度 = %.2f摄氏度' % f2c(0))


if __name__ == '__main__':
test()

若该文件作为模块导入(import test):那么此时test.__name__=‘test’
若直接执行该文件,则该文件的__name__=‘__main__’
所以当作为模块导入的时候if __name__ == '__main__'是不成立的,则不会执行test()方法;只有在直接执行该文件时if __name__ == '__main__'是成立的,会执行test()
如果程序中存在测试函数,那么加上这句话,则在作为模块导入后不执行该测试函数
posted @ 2017-06-12 17:16  鹄望  阅读(407)  评论(0编辑  收藏  举报