传入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中的PDF文件   linux Java打开文件,形成实际用户主页~/   java如何在时间线内维护TableView选择?   java Hibernate注释@Where vs@WhereJoinTable   Java读/写访问异常FileNotFoundException(访问被拒绝)   继承在Java中是否可以扩展最后一个类?   Android HttpClient使用java使应用程序崩溃。lang.OutOfMemoryError:pthread_create   java为什么即使我在proguardproject中添加了jar文件,也会出现这种错误。txt?   如果添加JButton,swing Java FocusListener和KeyListener将无法工作   java使用solrj检索json格式的SolrDocument   使用Microsoft Visual Studio代码进行Java编程   java NoClassDefFoundError:org/apache/log4j/Logger   哈希集中包含相等对象的java   java中的参数化构造函数是否需要有一个主体?   java类似于NetBeans不必要的代码检测器   Java实践问题   java Blackberry“[projectname].调试文件丢失”和“I/O错误:找不到程序”jar