将负函数作为 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))
在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))