跳转到主要内容

Python的Moose风格对象系统

项目描述

摘要

import elk


class Point(elk.Elk):
    x = elk.ElkAttribute(mode='rw', type=int)
    y = elk.ElkAttribute(mode='rw', type=int)

    def clear(self):
        self.x = 0
        self.y = 0


class Point3D(Point):
    z = elk.ElkAttribute(mode='rw', type=int)

    @elk.after('clear')
    def clear_z(self):
        self.z = 0

什么是Elk?

Elk (主页) 是受 Perl 中的 Moose 启发的 Python 对象系统。它实现了 Moose 的许多功能,包括

  • 属性委托

  • 默认属性值

  • 延迟属性初始化

  • 只读属性

  • 必需属性

  • 属性类型约束

  • 角色

  • 方法修饰符

Elk 是用纯 Python 编写的,并且没有超出标准库的依赖项。

Elk 与 Moose 有何不同?

Moose 有许多功能尚未在 Elk 中实现。

尽管 Elk 尽可能忠实地在 Python 中实现 Moose 的范式和模式,但它尽可能多地使用了 Python 习惯用法和语言特性。还有一些术语上的差异,以便与 Python 术语或习惯用法保持一致。

目前还没有 Elk 扩展的命名空间,也没有任何方便的机制来扩展它。

安装

pip install elk

许可证

Elk 是免费软件:您可以在自由软件基金会发布的 GNU 通用公共许可证的条款下重新分发和/或修改它,许可证版本为 3,或(根据您的选择)任何更高版本。

贡献

Elk 的源代码可以从 https://github.com/frasertweedale/elk 获取。

欢迎提交错误报告、补丁、功能请求、代码审查和文档。

要提交补丁,请使用 git send-email 或创建一个拉取请求。编写一个 格式良好的提交信息。如果你的补丁不是微不足道的,请更新每个更改文件顶部的版权声明。

项目详情


下载文件

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

源分发

elk-0.3.tar.gz (36.8 kB 查看哈希值)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面