Python学习之路(16)—— if __name__ == '__main__'

当我们打开一个.py文件时,经常会在代码的末尾处看到这样一个语句:

>>> if __name__ == '__main__':

  

那么这句话是什么意思呢?

我们知道,一个.py文件就是一个模块,所有的模块都有一个内置属性__name__。一个模块的__name__的值取决于我们如何使用这个模块。

1)如果我们import导入一个模块,那么这个模块的__name__值通常是模块的文件名。

2)如果我们像一个标准程序那样直接运行模块,在这种情况下,__name__的值就是一个缺省的“__main__”

所以“if __name__ == '__main__': ”这样一个语句,通常是用来对模块进行测试的,比如:

#TemperatureConvetion.py
def c2f(cel):
    return cel * 1.8 + 32
def f2c(fah):
    return (fah - 32) / 1.8
def test():
    print('0 摄氏度 = %.2f 华氏度' % c2f(0))
    print('0 华氏度 = %.2f 摄氏度' % f2c(0))
if __name__ == '__main__':
    test()

  

直接运行的话

 

 而导入该模块的话

>>> import TemperatureConvertion
>>> __name__
'__main__'
>>> 
>>> TemperatureConvertion.__name__
'TemperatureConvertion'
>>> TemperatureConvertion.f2c(10)
-12.222222222222221
>>> TemperatureConvertion.c2f(10)
50.0
>>> 

  

小结:

1)如果直接执行该.py文件,那么__name__ == '__main__'为True,test()执行

2)如果将该.py文件作为模块导入,那么__name__ == '__main__'为False,test()不执行

posted on 2018-03-01 20:35  nicolas_Z  阅读(141)  评论(0)    收藏  举报

导航