Adi*_*lik 0 python if-statement
我的初始if else代码是:
if response.get('fulfillments') is None:
return (False, response)
else:
return (True, response)
Run Code Online (Sandbox Code Playgroud)
但我想把它转换成one-line-if-else-statement.
这是我在做的事情:
return (False, response) if response.get('fulfillments') is None else return (True, response)
Run Code Online (Sandbox Code Playgroud)
但它引发了语法错误,我做错了什么?
单行if-else与块不同.它是一个表达式,而不是一个语句或多个语句.你做不了类似的事情:
(x = 4) if x > 5 else (x = 6)
Run Code Online (Sandbox Code Playgroud)
因为那些是陈述.相反,它是这样的:
x = (4 if x > 5 else 6)
Run Code Online (Sandbox Code Playgroud)
或者在你的情况下:
return (False, response) if response.get('fulfillments') is None else (True, response)
Run Code Online (Sandbox Code Playgroud)
但是,你真的不需要if-else.这样做:
return (response.get('fulfillments') is not None, response)
Run Code Online (Sandbox Code Playgroud)