问题标签 [python-dataclasses]

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 投票
1 回答
5679 浏览

python - Python 3 - 访问数据哪个更快:数据类或字典?

Python 3.7 引入了数据类来存储数据。我正在考虑采用这种新方法,这种方法比字典更有条理,结构更合理。

但我有一个疑问。Python 将键转换为 dicts 上的哈希,这使得查找键和值的速度更快。数据类实现类似的东西?

哪个更快,为什么?

0 投票
3 回答
2600 浏览

python - 腌制具有 __slots__ 的冻结数据类

如何腌制冻结数据类的实例__slots__?例如,以下代码在 Python 3.7.0 中引发异常:

如果我删除frozen或 ,这将有效__slots__。这只是一个错误吗?

0 投票
1 回答
1761 浏览

python - cython 是否支持数据类或类似的东西

我有兴趣在 Python 和 Cython 代码之间传递数据,以便可以从 C 访问数据而无需 GIL。我正在考虑使用数据类(自 py3.7 起)、命名元组(自 py3.6 起具有很好的定义语法)或 Cython 的扩展类型(cdef classess)来实现这一点。

不幸的是,数据类和命名元组似乎像 Cython 中的通用对象一样处理,而不支持编译成 C。

可以使用 Cython 扩展类型(cdef 类),但与数据类相比,它们有很多缺点,最重要的是,您必须__init__使用样板代码来设置所有类属性,对吧?

0 投票
1 回答
2900 浏览

python-3.x - 创建数据类时,我可以使用类型模块中的 Union 和 Optional 类型吗?

我想在创建数据类时使用UnionandOptional类型。我可以安全地使用这些类型吗?

例如:

0 投票
1 回答
467 浏览

python - 用保留字“class”定义数据类的属性并序列化

好的,我正在尝试定义一个数据类来为 sidekiq 工作人员在 redis 中排队工作,sidekiq 有效负载的规范需要一些具有这种格式的属性:

所以我在我的python代码中定义了一个数据类:

我的问题是我不能将“类”定义为 PusherNotificationJob 的属性,因为它是保留字。所以我需要定义 asdict 方法来序列化为 dict 并添加我在这里添加的“类”属性。

有更好的方法来做到这一点吗?

0 投票
1 回答
704 浏览

python - 如何使解冻的数据类实例可散列?

当使用frozen=False(默认行为)定义数据类,然后实例化此类的对象时,有没有办法使该对象可散列?

为什么我需要这个?

在 Python 3.7 之前,我使用命名元组而不是数据类,并且我曾经使用 查找重复项set(),但我不能再使用它了。frozen=True由于其他原因,我不想在数据类上使用。

0 投票
0 回答
57 浏览

python - Python 数据类递归定义

使用 Python 考虑以下数据类:

这个递归定义的正确语法是什么?

0 投票
4 回答
1045 浏览

json - 使用 jsons 将 JSON 字符串反序列化为嵌套对象

我正在尝试使用jsons将 json 字符串反序列化为对象,但嵌套对象存在问题,但无法解决语法问题。

例如,以下代码尝试将数据结构定义为一系列数据类,但未能反序列化嵌套对象 C 和 D ?语法显然是错误的,但我不清楚它应该如何构建

谁能指出从 json 反序列化对象的正确方法?

0 投票
2 回答
1864 浏览

python - 如何在数据类中声明变量

我试图在dataclass(y_set_maxy_set_min) 中声明两个变量。下面是我的代码:

这是抛出错误: NameError: name y_default_maxis not defined

如何修改我的dataclass代码以便返回两个打印语句?

0 投票
2 回答
1396 浏览

python - 当提供的参数为 None 时,是否可以强制数据类字段调用其 default_factory?

我有一个带有可变字段(列表)的数据类。我希望实现的是该字段永远不会是 None,即使在 __init__ 调用中明确设置为 None 也是如此。在一个普通的类中,这将是微不足道的:

有没有办法只使用dataclasses.field函数来实现相同的结果,即不显式实现 __init__ 方法(​​当类有很多属性时会很麻烦)?default_factory当提供的 init 参数为 None 时,我可以强制 dataclasses.field 调用它吗?