【发布时间】:2019-04-01 11:57:25
【问题描述】:
在 Python 中,我可以将一个函数作为参数传递给另一个函数,即:
inspect.getmembers(random, callable)
它将为我提供random 变量的所有可调用成员。而callable 是一个传递来执行检查的函数(只有满足检查的变量成员才会被返回)。
我的特殊问题是如何获取所有不可调用的参数,更广泛地说,有没有办法将函数的“反向”作为参数传递?
我试过这个:
inspect.getmembers(random, !callable)
inspect.getmembers(random, not callable)
第一个是语法错误,而第二个不起作用。
作为一种解决方法,我定义了自己的函数:
def uncallable(object)
return not callable(object)
这样就可以了:
inspect.getmembers(random, uncallable)
但我想知道是否有更简单的解决方案。
【问题讨论】:
-
“比写那个函数更简单”?你需要多少个谓词? (不完全是修辞;值得考虑一下。)
-
您可以使用匿名函数:
inspect.getmembers(random, lambda x: not callable(x))
标签: python python-3.x python-3.6 metaprogramming