传入api的回调函数规范
backcall的Python项目详细描述
传递给api的回调函数规范
如果您的代码允许其他人提供回调函数,那么 指定期望的函数签名,并检查函数是否支持该签名。 如果不小心,以后添加额外的参数会破坏其他人的代码。
backcall提供了一种使用原型指定回调签名的方法 功能:
from backcall import callback_prototype @callback_prototype def handle_ping(sender, delay=None): # Specify positional parameters without a default, and keyword # parameters with a default. pass def register_ping_handler(callback): # This checks and adapts the function passed in: callback = handle_ping(callback) ping_callbacks.append(callback)
如果回调使用的参数少于原型,则backcall将包装 它在一个函数中丢弃额外的参数。如果回调预期 参数越多,注册时就会抛出typeerror。