跳转到主要内容

Pythonic事件驱动编程。

项目描述

Classy Events

Pythonic事件驱动编程。

依赖关系

Python 3.8, 3.9

安装

pip install classy-events

用法

主要成分是一个事件处理实例

from classy_events import EventHandler
event_handler = EventHandler()

您可以为任何类型的事件注册事件监听器。在这个例子中,我们使用字符串事件。事件监听器是一个可调用的对象,如函数或方法。如果事件处理程序分发特定事件,则将调用已注册的事件处理程序。任何随事件一起提供的关键字参数都将传递给事件监听器。

函数监听器

事件"spam"的监听器,不需要回调!

@event_handler.on("spam")
def spam(value):
    print(f"on 'spam': '{value}'")

当在代码的任何地方分发"spam"事件时,将调用def spam

event_handler.dispatch("spam", value="ham and eggs")

现在打印出on 'spam': 'ham and eggs'

Classy监听器

要使用实例方法作为监听器,只需要多一步

class Spam:
    def __init__(self):
        event_handler.bind(self)

    @event_handler.on("classy_spam")
    def spam(self, value):
        print(f"on '{type(self).__name__}.spam': '{value}'")

spam_instance = Spam()

__init__中,将实例绑定到处理程序。请注意,此event_handler.bind调用不需要在__init__中进行。

为了展示这个动作,我们分发"classy_spam"事件

event_handler.dispatch("classy_spam", value="the classiest")

我们看到输出on 'Spam.spam': 'the classiest'

项目详细信息


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

classy-events-0.3.4.tar.gz (21.6 kB 查看哈希值)

上传时间 源代码

构建分发版

classy_events-0.3.4-py3-none-any.whl (21.5 kB 查看哈希值)

上传时间 Python 3

支持