写一个像 "return True if flag" 这样的 pythonic 单行语句?

Make a pythonic one line statement like "return True if flag"?

有没有办法为

写一行 python 语句
if flag:
   return True

请注意,这在语义上可能与

不同
return flag

在我的例子中,None 预计会以其他方式返回。

我试过 "return True if flag",我的 emacs 检测到语法错误。

如果在标志为假值时 return False,则可以使用 bool return bool(flag)

或者以下取决于你是否 return None:

 return True if flag else None

如果您正在测试 return 值,if Falseif True 都将计算为 False,因此除非您明确测试 None,否则 return bool(flag)足够了。

return True if flag 不起作用,因为您需要提供明确的 else。您可以使用:

return True if flag else None

复制原始 if 语句的行为。

您可以使用:

return bool(flag) or None