2013-03-21 213 views
3

我知道這一定是一個超級基本問題,但是,我試圖在整個SO中找到一個簡單的答案,並且找不到一個。從命令行執行Python腳本隱藏打印語句

所以我的問題是:我如何從命令行執行python腳本,以便我可以看到打印語句。

例如,假設我有一個文件test.py:

def hello(): 
    print "hello" 

如果我進入瞭解釋,進口test.py,然後調用test.hello(),一切工作正常。但是,我希望能夠從命令行運行

python test.py 

並讓它向終端打印「hello」。

我該怎麼做?

謝謝!

更新: 是的,對不起,我的劇本其實更像是這樣的:

def main(): 
    hello() 

def hello(): 
    print "hello" 

我仍然需要調用的main(),或者是自動調用?

+0

請參閱[此問題](http://stackoverflow.com/questions/419163/what-does-if-name-main-do)以獲取更多信息。 – 2013-03-21 20:06:59

回答

7

添加在文件的結尾:

if __name__ == '__main__': 
    hello() 
+2

如果你解釋'__main__',即使看起來很明顯也會更好。 – erm3nda 2015-09-21 15:59:24

2

你必須有腳本實際調用你的方法。通常,您可以使用if __name__ == "__main__":塊來完成此操作。

或者,您可以使用-c參數來解釋器來顯式地從cli導入和運行你的模塊,但這需要腳本放在你的python路徑上,而且你現在也會是壞樣式在Python模塊之外執行Python代碼。

0

據我瞭解,您的文件只是有下面幾行:

def hello(): 
    print "hello" 

的定義是正確的,但是當你「呼叫」功能?

你的文件應該包括對hello()函數的調用:

def hello(): 
    print "hello" 

hello() 

這樣,函數定義稱爲在一個文件中。

這是一個非常「劇本式」的方法......它的工作原理,但必須有一個更好的方式來做到這一點

2

print語句被封閉在一個函數定義塊。您需要調用的函數,以便它來執行:

def hello(): 
    print "hello" 

if __name__ == '__main__': 
    hello() 

基本上,這是說:「如果這個文件是主文件(已經從從命令行調用),然後運行該代碼。」