经常发生的代码我写的我有检查的条件取决于许多其他条件的函数,例如:What:如何夫妇“的原因”有返回值,优雅
def is_foo(bar):
if X: return True
if Y: return False
if Z: return True
return False
然后,我会想我的调试代码或记录它,所以我会改变上面:
def is_foo_reason(bar):
if X: return True, "cause of X you fool"
if Y: return False, "no X but Y"
if Z: return True, "Z Z Z Z Z Z"
return False, "default"
#for backwards compatibility:
def is_foo(bar): return is_foo_reason(bar)[0]
然后想要的原因代码(这样它可以记录它/它展示给用户,W/e)调用_reason
版本。
我的问题是:有没有更优雅的方式来做到这一点?
+1我已经做了一些,:返回值,使用namedtuple 。 – Davy8
嗯有趣。我担心有不同的返回类型,但如果它完全依赖于参数,那么这会产生很大的意义 – Claudiu