You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否有支持Alan Kay原生面向对象消息传递范式的Python第三方包?

关于Python中原教旨面向对象消息传递工具的解答

自定义实现方案

你描述的消息传递逻辑实现成本极低,无需引入第三方包即可快速实现完全符合你需求的能力,参考实现如下:

def send(receiver, message_name, *args, **kwargs):
    handler_name = f"handle_{message_name.lower()}"
    if hasattr(receiver, handler_name):
        return getattr(receiver, handler_name)(*args, **kwargs)
    # 可自定义未匹配消息的处理逻辑,比如默认转发、丢弃或抛出异常
    raise NotImplementedError(f"对象 {receiver} 无法处理消息 {message_name}")

上述实现可以直接适配你给出的示例代码写法,无额外依赖,你还可以根据需要扩展异步消息、消息广播、消息日志等能力。

现有第三方包选项

目前有多个符合需求的非网络相关消息传递包可用:

  • msgpass:轻量级进程内对象消息传递工具,无冗余依赖,除基础消息投递能力外,还内置消息队列、错误重试、消息过滤等可选扩展功能。
  • kayou:专门对齐Alan Kay原教旨面向对象语义设计的工具包,原生支持send风格的消息传递语法,同时内置了对象状态隔离、消息路由等配套能力。
  • pykka:Actor模型实现包,Actor模型本身就是完全基于消息传递的面向对象架构,虽然常被用于并发场景,但也完全可以用于普通业务架构的消息传递设计。

相关说明

你的想法不存在误区,只是Python社区内这类工具曝光度较低,核心原因是Python本身的方法调用、鸭子类型设计已经非常贴近原教旨面向对象的消息传递语义,大部分开发者习惯了隐式的消息传递写法,显式send风格的工具受众较小,所以相关资源较少。

内容的提问来源于stack exchange,提问作者Matthew Milone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:54:03