简单的信号/时隙实现

signaling的Python项目详细描述


https://img.shields.io/pypi/v/signaling.svg?style=flat-squarehttps://img.shields.io/travis/mdomke/signaling/master.svg?style=flat-squarehttps://img.shields.io/pypi/l/signaling.svg?style=flat-squarehttps://img.shields.io/coveralls/mdomke/signaling.svg?style=flat-square

这是什么?

signalingsignal/slot patternas的简单实现 从Qt framework知道。 它没有外部要求和100%的测试覆盖率。

安装

通常的

pip install signaling

如何使用?

假设您有一个函数,当连接的信号 发出,如下代码块所示:

defslot(arg):print("Slot called with {}".format(arg))signal=Signal(args=['arg'])signal.connect(slot)signal.emit(arg=1)# Slot called with 1

实际上,您可以将多个插槽连接到同一个信号,只要它们共享 相同的函数签名。

注意,signaling库在连接时执行一些健全性检查 插槽和发射信号。

  • 连接到信号的所有插槽都必须提供与 由Signal构造函数的args参数表示。
  • 必须使用与 Signal构造函数。

因此,下面的所有示例都会引发一个异常:

defslot_with_arg(arg):passdefslot_without_arg():pass# InvalidSlot: Slot 'slot_with_arg' has to callable without argumentsSignal().connect(slot_with_arg)# InvalidSlot: Slot 'slot_without_args' has to accept args ['arg'] or **kwargs.Signal(args['arg']).connect(slot_without_arg)s=Signal()s.connect(slot_without_args)# InvalidEmit: Emit has to be called without arguments.s.emit(foo=1)

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

推荐PyPI第三方库


热门话题
javai是JAXB的新手。如何将两个具有不同名称空间的不同xml合并为一个具有根元素的xml并将其解组?   JDO中的java应该是可传递的DefaultFetchGroup吗   java服务器配置问题   java在理解JList时遇到困难   java何时将RequestContextFilter用于Jersey?   java从数据库中读取文本文件。jar文件   Java正则表达式,仅适用于不包括零的正数   爪哇番石榴。类路径中的jar   JavaEE:关于设计的问题   java GUI,在面板中排列按钮   java Android为什么使用接口被认为是活动和片段之间通信的最佳实践?   java如何获取wicket图像的url以在开放图元标记中使用它   从Java字节[]>Base64>Javascript数组缓冲>Base64>byte[]   java正则表达式帮助字符串JWE766。1.pdf格式摘录766   java Hibernate,JPA忽略@Formula