首页 > 解决方案 > 是否有一种“pythonic”方式来调整函数的定义?

问题描述

我正在使用一个使用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都会按照我想要的方式运行。但是,我很好奇是否有更好的方法来做到这一点。

标签: python

解决方案


我只是可以考虑定义一个 lambda,但仅此而已,而且我认为没有简单的方法可以逃避重新分配有用的函数,除非该方法在一个类中并且我们使用__getattribute__...

original_useful_function = useful_function
useful_function = lambda obj: my_desired_result(obj) if meets_criteria(obj) else original_useful_function(obj)

推荐阅读