将一行 "if else" 语句分成多行

Break one line of "if else" statement into multiple lines

我想破解这段代码:

ex = func(object) if not self.is_object() else foo()

到多行 (pep 8)。 最好的方法是什么? 我想到了这个:

ex = func(object) \
    if not self.is_object() \
    else foo()

但这看起来有点难看,而且不是很整洁。还有别的办法吗?

编辑:这不同于仅仅将一行分成多行,因为这是一个特殊的 "expression if stmnt else stmnt" 而不是仅仅打破任何 python 代码。

将其分成多行的最佳方法如下:

if not self.is_object():
    ex = func(object)
else:
    ex = foo()

如果不需要包含在单个表达式中,不妨使用传统的if..else块。

这里到底有什么丑的?反斜杠?有办法避免它们
要将语句分成多行,请在条件语句周围使用括号,如下所示:

ex = (func(object)
      if not self.is_object()
      else foo())

但也许写一个完整的条件结构会更好:

if not self.is_object():
    ex = func(object)
else:
    ex = foo()

如果你绝对必须避免三元表达式(很多人似乎不喜欢它们),规范方法会更简洁:

if self.is_object():
    ex = foo()
else:
    ex = func(object)

它的优点是任何 Python 程序员都可以阅读它而不用想知道到底发生了什么!

如果它不能放在一行中,最好将它分成一个 if 语句:

if self.is_object():
    ex = foo()
else:
    ex = func(object)

或者您可以使用括号:

ex = (func(object)
       if not self.is_object()
       else foo())