簡單來講,若是是模塊自己做爲腳本運行時,這個if以後的語句能夠執行,若是該模塊A被import到別的模塊B中,運行模塊B的時候A模塊中的if __name__ == '__main__' 的語句將不會執行。html
咱們能夠從具體的例子來看:post
#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,將輸出:spa
__main__
而後咱們有另外一個模塊learning.py將my_math import進去:code
#learning.py import my_math print(__name__) print(my_math.__name__)
而後運行learning.py,將會輸出:htm
__main__ my_math
總結:當模塊做爲腳本直接運行時,__name__的值是__main__, 可是若是被import到別的模塊中運行時,__name__的值是它本身的名字,如本例爲my_mathblog
參考文獻:io
http://www.dengfeilong.com/post/60.htmlclass