跳转到主要内容

没有样板代码的属性。

项目描述

Latest Version CI status Coverage

attrs 是一个MIT-授权的Python包,具有类装饰器,可以简化实现最常见的属性相关对象协议的工作

>>> import attr
>>> @attr.s
... class C(object):
...     x = attr.ib(default=42)
...     y = attr.ib(default=attr.Factory(list))
>>> i = C(x=1, y=2)
>>> i
C(x=1, y=2)
>>> i == C(1, 2)
True
>>> i != C(2, 1)
True
>>> attr.asdict(i)
{'y': 2, 'x': 1}
>>> C()
C(x=42, y=[])
>>> C2 = attr.make_class("C2", ["a", "b"])
>>> C2("foo", "bar")
C2(a='foo', b='bar')

(如果您不喜欢玩耍的 attr.sattr.ib,您也可以使用它们的毫不妥协的别名 attr.attributesattr.attr).

您只需指定要处理的属性,attrs 就会为您提供

  • 一个清晰易读的 __repr__,

  • 一个完整的比较方法集,

  • 一个初始化器,

  • 以及更多

无需 再次编写枯燥的样板代码。

这使您能够在代码中使用实际类和实际类型,而不是混淆的 tuple 或令人困惑的 namedtuple

所以放下无类型的数结构,欢迎一些类进入您的生命!

attrs 的文档位于 Read the Docs,代码在 GitHub 上。它在 Python 2.6、2.7、3.3+ 和 PyPy 上进行了严格的测试。

作者

attrsHynek Schlawack 编写和维护。

开发得到了 Variomedia AG 的慷慨支持。

它是 characteristic 的精神继承者,并致力于修复其中的一些笨拙和不巧的决策。两者都受到 Twisted 的 FancyEqMixin 的启发,但都使用类装饰器来实现,因为 子类化对你有害,明白了吗?

以下人员帮助将 attrs 发展成现在的样子

当然,characteristic名人堂 也适用,因为它们共享了大量的代码。

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。

源代码分发

cylitestblarghblargh-15.3.0.tar.gz (33.8 kB 查看哈希值)

上传时间 源代码

支持者

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