2017-02-10 101 views
-2

可調用的函數在C++的語句,如果(函數()) 收益或真或假如果在蟒蛇

但如何在Python中是做了什麼? 我試過了:

if function() == True: 

幫助!

爲什麼自我需要?

def func(self,word): 
    if word == 'Hello': 
     return True 
word = 'Hello' 
if func(word): 
    print(word) 

爲什麼要問自己?如果func(自我,單詞)?

+1

你不是有翻譯嗎?如果是控制流程聲明。它不會返回任何東西。如果'function():'中的'function'的值是真的,則該塊執行。 '如果function()== True'只會在函數返回的值== True時執行。 –

+1

「在C++ if(function())返回false或true_」是完全錯誤的。 – DyZ

回答

0

下面的代碼工作得很好:

def return_true(): 
    return True 

if return_true(): 
    print("It's true!") 

if return_true() == True: 
    print("It's also true!") 

只要確保你的功能是否正確返回True,也許要修改它,因此回報率僅僅是return True檢查它的if聲明,而不是函數本身。

+0

def func(self,word): return True – tharmund

+0

是的,該函數應該按預期工作(即返回true)。你也可以使用tildes(\')在註釋中做代碼:'def func(self,word):return True'。請記住像在Python中一樣正確縮進,空格是重要的(返回應該在另一行)。 – Darkstarone

+0

我編輯了一個例子的帖子,似乎工作你提供的,但爲什麼它要我把「自我」的話,而不僅僅是如果func(arg):,而是想要如果func(self,arg)? – tharmund

0

你想轉換還是你想獲得函數的布爾值?

價值觀工作以布爾含蓄:

if function(): 
    # do stuff 

如果你想獲得一個布爾值,你可以通過鑄造做到這一點:

result = bool(function()) 
+0

強制轉換,但在調用函數時,不需要「self」,但在IF語句中調用某個函數時,它要求我放置「self」,爲什麼? – tharmund

+0

這些是相當低級別的Python問題。我認爲,對於您來說,諮詢一個指南並從概念上理解概念是一個更好的主意。 – JackCC

+0

@tharmund如果函數實際上是一個方法(意味着它被綁定到一個類),它只會讓你放入'self'。如果你正在創建一個函數(不綁定到類),除非它是函數的參數,否則你不能傳遞'self'。 –