我想打破这段代码:
ex = func(object) if not self.is_object() else foo()
到多行(第8页)。 最好的方法是什么? 我想到了这个:
ex = func(object) \
if not self.is_object() \
else foo()
但这看起来有点难看而且不是很整洁。还有另一种方式吗?
编辑:这与将一行分成多行不同,因为这是一个特殊的“表达式,如果stmnt else stmnt”,而不仅仅是破坏任何python代码。
答案 0 :(得分:4)
这里到底有什么丑陋的?反斜杠?有一种方法可以避免它们 要将语句拆分为多行,请在条件周围使用括号,如下所示:
ex = (func(object)
if not self.is_object()
else foo())
但也许写一个完整的条件结构会更好:
if not self.is_object():
ex = func(object)
else:
ex = foo()
答案 1 :(得分:0)
将其划分为多行的最佳方法如下:
if not self.is_object():
ex = func(object)
else:
ex = foo()
如果您不需要将其包含在单个表达式中,您也可以使用传统的if..else
块。
答案 2 :(得分:0)
如果你绝对必须避免三元表达(许多人似乎不喜欢它们),那么规范方法会更整洁:
if self.is_object():
ex = foo()
else:
ex = func(object)
有一个优点,任何Python程序员都可以阅读它,而不会想知道地球上发生了什么!
答案 3 :(得分:0)
如果它不适合一行,最好将其分解为if语句:
if self.is_object():
ex = foo()
else:
ex = func(object)
或者您可以使用括号:
ex = (func(object)
if not self.is_object()
else foo())