问题标签 [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.
python - Python 3 - 访问数据哪个更快:数据类或字典?
Python 3.7 引入了数据类来存储数据。我正在考虑采用这种新方法,这种方法比字典更有条理,结构更合理。
但我有一个疑问。Python 将键转换为 dicts 上的哈希,这使得查找键和值的速度更快。数据类实现类似的东西?
哪个更快,为什么?
python - 腌制具有 __slots__ 的冻结数据类
如何腌制冻结数据类的实例__slots__
?例如,以下代码在 Python 3.7.0 中引发异常:
如果我删除frozen
或 ,这将有效__slots__
。这只是一个错误吗?
python - cython 是否支持数据类或类似的东西
我有兴趣在 Python 和 Cython 代码之间传递数据,以便可以从 C 访问数据而无需 GIL。我正在考虑使用数据类(自 py3.7 起)、命名元组(自 py3.6 起具有很好的定义语法)或 Cython 的扩展类型(cdef classess)来实现这一点。
不幸的是,数据类和命名元组似乎像 Cython 中的通用对象一样处理,而不支持编译成 C。
可以使用 Cython 扩展类型(cdef 类),但与数据类相比,它们有很多缺点,最重要的是,您必须__init__
使用样板代码来设置所有类属性,对吧?
python-3.x - 创建数据类时,我可以使用类型模块中的 Union 和 Optional 类型吗?
我想在创建数据类时使用Union
andOptional
类型。我可以安全地使用这些类型吗?
例如:
python - 用保留字“class”定义数据类的属性并序列化
好的,我正在尝试定义一个数据类来为 sidekiq 工作人员在 redis 中排队工作,sidekiq 有效负载的规范需要一些具有这种格式的属性:
所以我在我的python代码中定义了一个数据类:
我的问题是我不能将“类”定义为 PusherNotificationJob 的属性,因为它是保留字。所以我需要定义 asdict 方法来序列化为 dict 并添加我在这里添加的“类”属性。
有更好的方法来做到这一点吗?
python - 如何使解冻的数据类实例可散列?
当使用frozen=False
(默认行为)定义数据类,然后实例化此类的对象时,有没有办法使该对象可散列?
为什么我需要这个?
在 Python 3.7 之前,我使用命名元组而不是数据类,并且我曾经使用 查找重复项set()
,但我不能再使用它了。frozen=True
由于其他原因,我不想在数据类上使用。
python - Python 数据类递归定义
使用 Python 考虑以下数据类:
这个递归定义的正确语法是什么?
json - 使用 jsons 将 JSON 字符串反序列化为嵌套对象
我正在尝试使用jsons将 json 字符串反序列化为对象,但嵌套对象存在问题,但无法解决语法问题。
例如,以下代码尝试将数据结构定义为一系列数据类,但未能反序列化嵌套对象 C 和 D ?语法显然是错误的,但我不清楚它应该如何构建
谁能指出从 json 反序列化对象的正确方法?
python - 如何在数据类中声明变量
我试图在dataclass
(y_set_max
和y_set_min
) 中声明两个变量。下面是我的代码:
这是抛出错误: NameError: name y_default_max
is not defined
如何修改我的dataclass
代码以便返回两个打印语句?
python - 当提供的参数为 None 时,是否可以强制数据类字段调用其 default_factory?
我有一个带有可变字段(列表)的数据类。我希望实现的是该字段永远不会是 None,即使在 __init__ 调用中明确设置为 None 也是如此。在一个普通的类中,这将是微不足道的:
有没有办法只使用dataclasses.field函数来实现相同的结果,即不显式实现 __init__ 方法(当类有很多属性时会很麻烦)?default_factory
当提供的 init 参数为 None 时,我可以强制 dataclasses.field 调用它吗?