问题标签 [python-attrs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
11 回答
14621 浏览

python - 如何避免 __init__ 中的“self.x = x;self.y = y;self.z = z”模式?

我看到像这样的模式

非常频繁,通常带有更多参数。有没有避免这种乏味重复的好方法?类应该继承自namedtuple吗?

0 投票
8 回答
877 浏览

python - 使用 Python 创建 JSON

我想使用 Python 创建 JSON。

由于我没有找到可以帮助我的库,我想知道是否可以检查 Python 文件中类的顺序?

例子

如果我 import example,我想知道类的顺序。在这种情况下,它是 [Foo, Bar] 而不是 [Bar, Foo]。

这可能吗?如果“是”,怎么做?

背景

我对 yaml/json 不满意。我有一个模糊的想法来通过 Python 类创建配置(只有类,而不是对象的实例化)。

欢迎帮助我实现目标的答案(使用易于使用且有趣的工具创建 JSON)。

0 投票
2 回答
522 浏览

python - Python attrs 库和引用实例方法

如何转换下面的类以使用attrs 库

具体来说,如何处理一个参数对另一个参数的初始化的依赖性?在我最初的尝试中,我从这样的课程开始:

但是我不确定如何处理该template属性?我最初的想法是这样做:

不过,我想知道是否有更好的方法来实现这一点?

0 投票
5 回答
629 浏览

python - 如何从另一个命名元组推断或子类型命名元组?

前言

我想知道如何以Python的方式概念化数据类。具体来说,我说的是 DTO(数据传输对象。)

我在@jeff-oneill 问题“<a href="https://stackoverflow.com/questions/3357581/using-python-class-as-a-data-container/">Using Python class as a数据容器”,其中@joe-kington 有一个使用内置namedtuple.

问题

在 python 2.7 文档的第 8.3.4 节中,有一个很好的例子来说明如何组合几个命名元组。我的问题是如何实现反向?

例子

考虑文档中的示例:

如何从“像素”实例中推断出“颜色”或“点”实例?

最好是蟒蛇精神。

0 投票
2 回答
3888 浏览

python - 完美转发 - 在 Python 中

我是一个大量使用继承的 Python 项目的维护者。有一个反模式给我们带来了一些问题并且使阅读变得困难,我正在寻找一种解决它的好方法。

问题是将非常长的参数列表从派生类转发到基类 - 主要但不总是在构造函数中。

考虑这个人为的例子:

此时,一切看起来都像是DerivedA——长长的参数列表,所有这些都显式地传递给基类。

不幸的是,在过去的几年中,我们遇到了一些问题,包括忘记传递参数并获取默认值,以及没有注意到派生类中的一个默认参数与默认默认值不同。

它还使代码不必要地庞大,因此难以阅读。

DerivedB更好并解决了这些问题,但有一个新问题是派生类中方法的 Python 帮助/sphinx HTML 文档具有误导性,因为许多重要参数隐藏在**kwds.

有没有办法将正确的签名——或者至少是正确签名的文档——从基类方法“转发”到派生类方法?

0 投票
1 回答
4222 浏览

python - 何时以及为什么应该使用 attr.Factory?

何时以及为什么要使用attr.ib(default=attr.Factory(list))over attr.ib(default=[])

文档中我看到工厂用于生成新值,如果您使用带有输入的 lambda 表达式,这很有意义;但是,如果您只是生成一个空列表,我不明白为什么要使用它。

我在这里想念什么?

0 投票
3 回答
4970 浏览

python - 如何使用 Python 模块“attrs”实现“attr.asdict(MyObject)”的逆向

在Python 模块的文档中attrs 指出,有一种方法可以将属性的类转换为字典表示:

例子:

我怎样才能达到相反的效果:Coordinates从其有效的字典表示中获取实例,而无需样板和attrs模块的乐趣?

0 投票
1 回答
191 浏览

python - super() 和显式 super(Cl,self) 有什么区别(带有 __slots__ 和 attrs)

我正在使用attrspython 包,结合继承和插槽。我想从派生方法中调用父类的方法。问题如下所示:

我得到:

TypeError: super(type, obj): obj 必须是类型的实例或子类型

该问题似乎是由 attrs(具有显式__slots__=()工作的未装饰类)、插槽(常规@attr.s装饰类工作)和普通super()调用(super(Derived, self)工作)的组合触发的。

我想了解super()与显式版本的行为有何不同super(Derived, self),因为文档说它们“做同样的事情”

0 投票
1 回答
1135 浏览

python - 仅在 __attrs_post_init__ 结束后运行属性验证器

我有:

在这里如何正确设置验证?我想在实例化后验证 self.number 。

0 投票
2 回答
212 浏览

python - 如何模拟 attr.ib 验证器

我有一个 attrs 类:

我需要模拟这个验证器。