我正在处理一个经常使用useful_function(obj)
的模块。我的问题是,我希望useful_function
的行为与正常情况略有不同。目前,我正在使用以下方法来解决我的问题:
original_useful_function = useful_function
def useful_function(obj):
if meets_criteria(obj):
return my_desired_result(obj)
return original_useful_function(obj)
然后我就可以开始我的工作了,因为我知道useful_function
的每一次调用都会按照我想要的方式进行。然而,我很好奇是否有更好的方法可以做到这一点。
我只想定义一个lambda,但仅此而已,我认为没有简单的方法可以逃脱重新分配useful_function,除非该方法在一个类中,并且我们用__getattribute__
做了一些魔术。。。
original_useful_function = useful_function
useful_function = lambda obj: my_desired_result(obj) if meets_criteria(obj) else original_useful_function(obj)
如果你做了很多这样的工作,你可以考虑一个装饰师。
除此之外,我认为你所掌握的是清晰直接的。
顺便说一句,看起来你可能正在使用从foo导入*?通常最好使用import-foo。