将一行 "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())
我想破解这段代码:
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())