2016-05-20 2 views
1

戻り値を明示的に宣言せずに構文を短縮し、if文から関数の値にアクセスできますか?例えば、このように書く:if文から関数の値にアクセスする

if some_func(): 
    print('Somehow got the value of some_func()') 

の代わり:

def optional(x): 
    if x: 
     yield x 

for x in optional(some_func()): 
    print(x) 

しかしのでそれは実際にあなたのコードがより良いことはありません。

x = some_func() 
if x: 
    print(x) 
+0

いいえ、ありません。 –

+1

あなた自身の質問 – ritesht93

+0

はい、あなたはそれを使用することができます、その完全に有効な –

答えて

0

は、ここであなたがそれを行うことができます方法ですループの存在は誤解を招きます。あなたが持っているものに固執する。より短いコードが常に良いとは限りません。

+0

実際、キャンドルの価値はありません。 –

0

はい、

可能です。

たとえば、

def isEven(no): 
    return not(no % 2) 

iN = 2 
if isEven(iN): 
    print str(iN) + " is even" 
    else: 
    print str(iN) + " is odd" 

文が評価された場合の上、それはISEVENの真理値を探します()。 Pythonでは、以下の値は真偽値をfalseにしています: - []、{}、空集合、0、False、None(これ以上ないかもしれません)。そうでなければ、他の値の真理値は真です。

0

はいできます。関数から返された値は、ifの評価に使用されます。

>>> def f(): 
...  return 1 
... 
>>> if f()==1: 
... print('hey') 
... 
hey 
関連する問題