2009-09-07 26 views
17

這個問題很簡單,但沒有通過搜索來解答。如何在Python腳本中確定此腳本是作爲模塊導入還是作爲腳本運行? Python中有沒有區別?如何確定python腳本是作爲模塊導入還是作爲腳本運行?

問題是,我想僅在作爲腳本運行時評估命令行參數,但如果只導入模塊才能在另一個腳本中使用它,則不能評估命令行參數。 (我希望能夠同時使用一個腳本作爲庫和程序)。恐怕香草的方式是構建庫和使用它的第二個腳本,但是我希望有一個小工具的第二個選項/庫。

回答

29

蟒蛇docs

當您運行與

蟒蛇fibo.py

模塊中的代碼會被執行 一個Python模塊,就像如果你進口的話, 但__name__設置爲 "__main__"。這意味着,在您的模塊的末尾添加 驗證碼:

if __name__ == '__main__': 
    # Running as a script 

你可以使用一個腳本,以及一個可導入模塊的文件,因爲它分析命令行的代碼只運行如果模塊作爲「主」文件執行

+3

這看起來有點神奇,但實際上是一個完全標準的習慣用法。如果你是由'python -m somemodule'調用的模塊,你也可以\ _ \ _main \ _ \ _。 – bobince 2009-09-08 00:55:12

相關問題