__name__ 是当前模块名,当模块被直接运行时模块名为 __main__ 。这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行。我们通过一个简单的例子来理解为什么要使用该语句:
假设我们有一个C.py文件
PI = 3.14
def main():
print "PI:", PI
main()
main()函数相当于最后检查一遍,运行后输出:PI: 3.14
我们现在有一个area.py文件,用于计算圆面积,需要用到C.py文件中的PI变量
from C import PI
def calc_round_area(radius):
return PI * (radius ** 2)
def main():
print "round area: ", calc_round_area(2)
main()
运行area.py,输出结果PI: 3.14
round area: 12.56
我们发现C中的main函数也被运行了,但是实际上我们只希望得到圆面积的结果,于是更改C.py文件
PI = 3.14
def main():
print "PI:", PI
if __name__ == "__main__":
main()
然后运行area.py,输出如下:
round area: 12.56
这才是我们要的结果。