将负函数作为 n 参数传递

Pass function negative as n argument

在Python中我可以将一个函数作为参数传递给另一个函数,即:

inspect.getmembers(random, callable)

它将为我提供 random 变量的所有可调用成员。 callable 是传递给执行检查的函数(只返回满足检查的变量成员)。

我的特殊问题是如何获取所有不可调用的参数,更广泛地说,有没有办法将函数的 "reverse" 作为参数传递?

我试过这个:

inspect.getmembers(random, !callable)
inspect.getmembers(random, not callable)

而且第一个是语法错误,而第二个不起作用。

作为解决方法,我定义了自己的函数:

def uncallable(object)
    return not callable(object)

这样就可以了:

inspect.getmembers(random, uncallable)

但我想知道是否有更简单的解决方案。

只需编写不可调用的包装器即可。

据我所知,没有一种语言可以实现您所期望的那种高级函数运算。

没有办法使这样的概念在一般情况下起作用。

这些函数的结果是什么:?

! len
len + len
len + ! len

所以我们剩下的是显式编写的高阶函数,将函数作为参数的 akka 函数和 return 其他类似的函数

def negate(func):
    def wrapped(*args, **kwargs):
        return not func(*args, **kwargs)
    return wrapped

uncallable = negate(callable)

这些与 python 装饰器的模式相同。

只需使用 lambda:

inspect.getmembers(random, lambda x: not callable(x))