Skip to main content
 首页 » 编程设计

python之如何将一个函数作为参数传递给另一个函数并在 python 中使用该函数返回的值

2025年05月04日16xing901022

我试图否定一个函数返回的值。

考虑代码是

def greater(a,b): 
    return a>b 
 
check = negate(greater) 
 
assert check(8,9) 

或

def equal(a,b): 
    return a==b 
 
check = negate(equal) 
 
assert check("python","java") 

我应该如何定义NEGATE函数???

请您参考如下方法:

使用函数式 decorator :

def negate(func): 
    def inner(*args, **kwargs): 
        val = func(*args, **kwargs) 
        return not val 
    return inner 

演示:

>>> greater(10, 20) 
False 
>>> negate(greater)(10, 20) 
True 

要保留诸如 docstring 和传递给 negate 的函数的其他属性,您可以使用 functools.wraps .

from functools import wraps 
 
def negate(func): 
    @wraps(func) 
    def inner(*args, **kwargs): 
        val = func(*args, **kwargs) 
        return not val 
    return inner