SyntaxError:无效语法 - python中的一行if语句

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)

但它引发了语法错误,我做错了什么?

zon*_*ndo 7

单行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)