最近我發現使用下面的語句在我的一些功能自己:返回,如果值成語(有條件返回)
[...]
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