传入api的回调函数规范

backcall的Python项目详细描述


https://travis-ci.org/takluyver/backcall.png?branch=master

传递给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。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Jgit对于给定的存储库,我们如何确定新提交的列表,以及每个提交来自哪个分支?   从MS Access数据库添加java ComboBoxItem   如何禁止Java列表中不同类的实例?   java在没有Web的JAXR上使用Shiro过滤器。xml   由于java原因,无法在Ubuntu上安装Netbeans 8.2。awt。未找到恐怖和辅助技术   java JUnit对RuntimeException的处理(特别是)   java空集合在Apache CXF服务(JAXWS)中被转换为null   java CannotAcquireLockException问题   sql如何在数据库中对(Java)枚举建模(使用SQL92)   安卓在Java中获取友好url后面的文件名   java如何访问数组名以获取列表?   javascript Java Nashorn longBitsToDouble   java控制台<init>错误   java将一个LinkedList追加/连接到另一个LinkedList的最有效方式是什么?   Java for正在跳过的循环   java帮助创建带有动画的复杂Swing GUI   java Android编辑文本。setHint在片段中不工作