当您使用错误数量的参数或使用不在其定义中的关键字参数调用函数时,您会收到 TypeError。我想要一段代码来获取回调并根据回调支持的内容使用可变参数调用它。一种方法是,对于回调cb
,使用cb.__code__.cb_argcount
and cb.__code__.co_varnames
,但我宁愿将其抽象为类似的东西apply
,但这仅适用于“适合”的参数。
例如:
def foo(x,y,z):
pass
cleanvoke(foo, 1) # should call foo(1, None, None)
cleanvoke(foo, y=2) # should call foo(None, 2, None)
cleanvoke(foo, 1,2,3,4,5) # should call foo(1, 2, 3)
# etc.
Python中是否已经有类似的东西,还是我应该从头开始编写?