我正在使用一个经常使用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
的调用都会按照我想要的方式进行。但是,我很好奇是否有更好的方法可以做到这一点。
答案 0 :(得分:0)
我只是可以考虑定义一个lambda,但仅此而已,而且我认为没有一种简单的方法可以避免重新分配有用的函数,除非该方法在类中并且我们使用__getattribute__
做一些魔术...
original_useful_function = useful_function
useful_function = lambda obj: my_desired_result(obj) if meets_criteria(obj) else original_useful_function(obj)
答案 1 :(得分:-1)
如果您要执行很多操作,则可以考虑使用装饰器。
除此之外,我认为您所拥有的是明确而直接的。
顺便说一句,看来您可能正在使用来自foo的import *?通常最好使用import foo。