2016-10-13 13 views
0

私の最初のif elseコードがある場合は、1つの行:にSyntaxError:無効な構文 - Pythonで文が

if response.get('fulfillments') is None: 
    return (False, response) 
else: 
    return (True, response) 

しかし、私はone-line-if-else-statementに変換します。ここで

は私がやっているものです:

return (False, response) if response.get('fulfillments') is None else return (True, response) 

をしかし、私が間違って何をやっている、構文エラーを上げていますか?

答えて

6

「この三式の結果を返す」と

>>> def foo(x): 
... return True if x == 2 else False 

は1行if-elseではありませんそれを読みますブロックと同じ。これは式であり、1つの文または複数の文ではありません。

(x = 4) if x > 5 else (x = 6) 

これらはステートメントなので、次のようなことはできません。代わりに、それはこのようなものです:

x = (4 if x > 5 else 6) 

またはあなたの場合:

return (False, response) if response.get('fulfillments') is None else (True, response) 

あなたは本当にかかわらず、if-elseを必要としません。

return (response.get('fulfillments') is not None, response) 
2

二番目を省略します。return。簡単にするために:ない「1ケースにはこの事を返すが、別の場合には、いくつかの他のものを返す」

2
return (False, response) if response.get('fulfillments') is None else (True, response) 

val_positive if expression else val_negative:ちょうどこれを行います。 val_positiveまたはval_negativeにreturnステートメントを含めることはできません

関連する問題