__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

这才是我们要的结果。


posted on 2017-08-25 09:52  未雨愁眸  阅读(163)  评论(0编辑  收藏  举报