可能重複:
What does <if name==「main」:> do?它爲什麼這樣做?如果 - __name__ == '__main__'
考慮以下代碼:
if __name__ == '__main__':
import pdb
pdb.run("interact()\n")
什麼是以下行是什麼意思?
if(__name__=='__main__')
我暈過去了。
可能重複:
What does <if name==「main」:> do?它爲什麼這樣做?如果 - __name__ == '__main__'
考慮以下代碼:
if __name__ == '__main__':
import pdb
pdb.run("interact()\n")
什麼是以下行是什麼意思?
if(__name__=='__main__')
我暈過去了。
如果此模塊作爲獨立程序運行,這將是真實的。這樣,某些東西既可以作爲另一個程序導入的模塊,也可以作爲獨立程序運行,但只有在作爲程序執行時才能執行if
語句中的代碼。
這是一個檢查,看看你是直接運行腳本還是包含在庫中。
當你運行一個python腳本是這樣的:
python myScript.py
它發出了一個參數,告訴你運行程序第一種方法,它被廣泛稱爲「主」,所以當__name__
是__main__
你知道程序從命令行執行或雙擊。
他寫了一個python模塊,打算通過import
使用。
如果該模塊作爲主python腳本傳遞給解釋器,則會引用您引用的代碼。這將調用python調試器下的interact()
方法。
__name__
是一個自動設置在執行python程序中的變量。如果您的import
來自另一個程序的模塊__name__
將被設置爲模塊的名稱。如果您直接運行程序,則__name__
將設置爲__main__
。
因此,如果你想,如果你在命令行中運行該程序,而不是進口的當一些事情發生只(如:單元測試庫),你可以使用
if __name__ == "__main__":
# will run only if module directly run
print "I am being run directly"
else:
# will run only if module imported
print "I am being imported"
詭計。這是一個常見的Python成語。
+1「I dainted」 – mpen 2009-12-29 07:32:08