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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7b0bae87846fbc10b0f78b89135c18f573e5ab762002f5e27d39ee635f12766b |
|
MD5 | 370459e8ba2f8e7d47ec38bed6388558 |
|
BLAKE2b-256 | 7b0e044f2029412085adf81d667068b79a08e1c870b923519f9d7b2e8f3f3ee2 |