传入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仿射变换以旋转通用路径   IntelliJ IDEA中的java代码标记为编译器错误,在Eclipse中可以正常工作   java ArrayList的containsAll返回了错误的值   如何在安卓中的片段活动中添加java代码   java通过使用netbeans调用jbutton,将带有行的jbutton添加到jtable中   java在更新arrayAdapter/listView之前更新最终列表   java如何在另一个项目中导入包含AspectJ方面和注释的项目   为什么我的java布尔测试总是失败?   Eclipse中的java自动激活   在Bluetooth for Java(更具体地说是Android)之上是否有TCP/IP协议栈实现?   java Android Studio通过intent传递ArrayList并填充ListView