2016-11-04 108 views
-2

我無法打印無值作爲值。Python打印無

假設這裏是我的Python代碼:

def a(b): 
    b = None 
    print b 

def c(a): 
    if a: 
     return True 
    else: 
     return False 

>>> a(1) 
None   # I need this "None" to show. 
>>> c(a(1)) 
None   # I don't want to print out this, but don't know how. 
False 

我的問題是我有 「打印」 的無時只調用功能。

而當我將函數a傳遞給函數c時,我不希望「無」打印出來。

如果我輸入「return None」,Python shell不會爲函數a顯示「None」。這就是爲什麼我認爲如果我想展示「無」,我只能使用「打印」。但是當我將函數a傳遞給函數c時,「無」也被打印出來。有沒有辦法只在第二個函數中打印出「None」才偷偷得到結果?

我希望我的問題是有道理的。

非常感謝您的幫助。

回答

0

調用c(a(1))將首先執行a(1),然後執行c(a(1))。由於此處a(1)未返回truec(a(1))將評估爲False

這就是你得到以下的原因:

None 
False 

嘗試調用該函數爲c(a)這將返回如下:

True 

這是因爲a還沒有執行,它是有一定的價值到它。

希望這會有所幫助!