2009-12-29 70 views

回答

9

如果此模塊作爲獨立程序運行,這將是真實的。這樣,某些東西既可以作爲另一個程序導入的模塊,也可以作爲獨立程序運行,但只有在作爲程序執行時才能執行if語句中的代碼。

4

這是一個檢查,看看你是直接運行腳本還是包含在庫中。

當你運行一個python腳本是這樣的:

python myScript.py 

它發出了一個參數,告訴你運行程序第一種方法,它被廣泛稱爲「主」,所以當__name____main__你知道程序從命令行執行或雙擊。

1

他寫了一個python模塊,打算通過import使用。

如果該模塊作爲主python腳本傳遞給解釋器,則會引用您引用的代碼。這將調用python調試器下的interact()方法。

13

__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成語。

相關問題