Python中的if __name__ == '__main__'

     简单来说,如果是模块本身作为脚本运行时,这个if之后的语句可以执行,如果该模块A被import到别的模块B中,运行模块B的时候A模块中的if __name__ == '__main__' 的语句将不会执行。

     我们可以从具体的例子来看:

 

#my_math.py
def
product(x, y): if x == 7 and y ==9: return 'An insidious bug has surfaced!' return x * y print(__name__)

直接运行my_math.py,将输出:

__main__

然后我们有另一个模块learning.py将my_math import进去:

#learning.py
import my_math

print(__name__)
print(my_math.__name__)

然后运行learning.py,将会输出:

__main__
my_math

 

总结:当模块作为脚本直接运行时,__name__的值是__main__, 但是如果被import到别的模块中运行时,__name__的值是它自己的名字,如本例为my_math

 

参考文献:

http://www.dengfeilong.com/post/60.html

 

posted on 2018-06-07 15:54  yanzibuaa  阅读(156)  评论(0编辑  收藏  举报