是否可以在不提出异常的情况下使用以下代码?
hello
函数表示我无法控制的代码。这只是为了清楚起见。
def hello():
print("hellowed")
def callsCallback(callback):
callback(*["dd"])
callsCallback(hello)
这个想法是让库在某些事情发生时接收回调函数。为了向后兼容,被调用的函数可能会也可能不会接收参数。
我知道这个答案:How can I find the number of arguments of a Python function?但我宁愿避免检查,如果可以的话。
答案 0 :(得分:0)
如果在包装函数中使用了*args
,那么由于参数数量不正确,它永远不会抛出异常。
def hello():
print("hellowed")
def wrapper(f):
def g(*args):
f()
return g
def callsCallback(callback):
callback = wrapper(callback)
callback(*["dd"])
callsCallback(hello)
您可以使用装饰器样式功能。对于你想做的事情,这可能有点过头了。
如果您事先不知道hello
有多少参数,则必须按照建议适当调用该函数进行反省。