最近我发现使用下面的语句在我的一些功能自己:返回,如果值成语(有条件返回)
[...]
def validate(self):
# Possibly do something "expensive" to calculate whether data is valid or not
if data_is_valid:
return ObjectOfSomeSort(validated_data)
return False
ret = self.validate()
if ret:
return ret
[...]
我觉得像ret = ...; if ret: return ret
语法有点笨拙,unpythonic,但是,而我并不总是能够做到像
if self.validate():
return self.validate()
东西,因为偶尔我的验证函数包含一些比较昂贵的计算逻辑。
所以,StackOverflow,这种问题存在什么样的python习语;具体而言,我还能如何“有条件地返回”?
我必须同意,是完全unpythonic,因为我实际上没有得到你想做什么......如果它很难解释,这是一个坏主意:P – KurzedMetal 2013-02-08 15:38:54
我的“验证”函数返回False如果数据无效。如果数据是有效的,我想早日退出调用函数(调用self.validate()的函数);如果不是,我想继续执行流程。 – 2013-02-08 15:40:41
嗯,看起来这里的语义有点不对:'self.validate()'意味着你要确保* current(!)*对象,又名'self'是有效的。 – 2013-02-08 15:41:37