我经常在python中使用三元运算符,效果很好:-) 现在我看到,在大多数情况下,使用“or”运算符是可能的。 例如:
# Ternary operator example
class Foo:
first = 'First'
second = 'Second'
def bar(self):
return self.first if self.first else self.second
foo=Foo()
foo.bar() # returns 'First'
foo.first = None
foo.bar() # returns 'Second'
同样的功能可以通过使用'or'-操作符作为Short-cirquit evaluation来实现。你知道吗
# Short-cirquit evaluation
class Foo:
first = 'First'
second = 'Second'
def bar(self):
return self.first or self.second
foo=Foo()
foo.bar() # returns 'First'
foo.first = None
foo.bar() # returns 'Second'
现在的问题是:
简短的cirquit评估的用法是否被认为是pep-8和pythonic用法,还是不够明确? 它是否被接受为专业解决方案?你知道吗
是的,对
or
或and
使用短路是完全合理的。重要的一点是,生成的代码应该是您能够生成的可读性和可维护性最高的版本。例如,当我在get
引用列表中爬行时,我将执行以下操作当引用序列中的任何内容都不存在时,这很好地为我提供了
None
,但是如果一切正常,它会返回字段值。你知道吗相关问题 更多 >
编程相关推荐