2013-09-24 75 views

回答

1

如果你的函數總是返回bool,那麼就打印出來,像這樣:

print(f()) 

如果你需要將其轉換爲字符串,而不進行打印,使用str(f())repr(f())。對於bool類型,這兩個是相同的,但例如如果他們的參數是str,他們是不同的:repr(str_obj)返回它適當引用和轉義。

如果它不總是一個bool,但你想要打印的東西取決於它的真值,那麼使用if,就像在你的問題或在iCodez的答案。另外,您也可以將其轉換爲BOOL,然後打印:

print(bool(f())) 
+1

我同意@LorenzoDonati。這不是作爲一個事實答案寫的,而是作爲你的意見。你應該這樣說:「Python布爾實現'__repr__'和'__str__'來打印它們的真值,這樣'print(f())'實際上等同於你發佈的片段,但更簡潔。 ,所以第一種形式絕對沒問題。「 –

+0

感謝您對我的回答的反饋,我將它擴展爲更多信息。 – pts

3

print自動將輸入到它的字符串表示。所以,這兩種方法實際上完全一樣。考慮到這一點,爲什麼不使用第一個?這是一個更清潔。

此外,第二方法真的可以簡化爲:

print('True' if f() else 'False') 

有,對於這麼簡單的東西多的代碼是沒有必要的。

0

個人的:

print(f()) 

形式看起來更好。然而,需要考慮的一件事情是,您已經調用了打印什麼是本質上調試輸出,而調用會導致該功能被調用。當你準備建立你的程序時,如果你想關掉所有煩人的print聲明,這會讓它很痛苦。

您可以改爲具有這樣的功能,如:

LOGGING_ENABLED = True 

def print_if(my_bool): 
    if LOGGING_ENABLED: 
     print str(my_bool) 

這將確保該函數調用總是但是隻有當你想要的調試輸出發生。

相關問題