本質:name 是當前模塊名,當模塊被直接運行時模塊名爲 main 。這句話的意思就是,當模塊被直接運行時,以下代碼塊將被運行,當模塊是被導入時,代碼塊不被運行。
if __name__ == '__main__': # 注意 這裏是兩個_
這段代碼的功能理解如下:
一個python的文件有兩種使用的方法--->
作用一,直接作爲腳本執行。
作用二,import到其他的python腳本中被調用(模塊重用)執行。
舉個例子,下面在test.py中寫入如下代碼:
print "I'm the first."
if __name__=="__main__":
print "I'm the second."
執行test.py 可以成功print兩行字符串:
I'm the first.
I'm the second.
然後在同一文件夾新建名稱爲import_test.py的腳本,只輸入如代碼:
import test
執行import_test.py腳本,輸出結果如下:
I'm the first.
只輸出了第一行字符串。
即,if __name__=="__main__": 之前的語句被執行,之後的沒有被執行。
if __name__ == '__main__' : 的作用就是控制這兩種情況執行代碼的過程,在if __name__ == '__main__': 下的代碼只有在第一種情況下(即文件作爲腳本直接執行)纔會被執行,而import到其他腳本中是不會被執行的。