问题标签 [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.
celery - 我可以使用数据类(或类似的)作为 Celery 任务的参数和返回值吗?
默认情况下,Celery 任务的参数可以接受原始类型、列表和字典作为参数和返回值。
但是如果我想发送和返回更复杂的值呢?我想使用 Python 3.7 的数据类作为参数和返回值。由于我使用的是 Python 3.6,因此我使用的是数据类的反向移植,但据我所知,这几乎是一回事。
当我尝试发送或返回一个数据类实例时,我收到一个错误,指出该对象不是 JSON 可序列化的......这是正确的:JSON 序列化程序不知道如何处理类似的事情。
那么有一种方法可以使用自定义的 JSON 序列化器,它可以将数据类实例作为参数处理并返回值?
python - 检查数据类字段是否具有默认值的 Pythonic 方法
我最近一直在使用 python 3.7,并正在寻找利用新数据类的方法。基本上我有一个迭代数据类字段并检查它们是否具有默认值的方法:
但是在官方文档中,它说:
MISSING 值是一个标记对象,用于检测是否提供了 default 和 default_factory 参数。使用此标记是因为 None 是默认值的有效值。任何代码都不应直接使用 MISSING 值。
任何人都知道更好/更pythonic的方式来做到这一点?
python - @dataclass Python 类中的拼写错误的字段
如何使它在@dataclass
-decorated Python 类中设置拼写错误的字段时引发异常?
我想要一种实用的方法来做到这一点。我需要编写自己的装饰器吗?
python - 有没有办法使用带有默认字段的数据类和 __slots__
我想放置__slots__
一个带有默认字段的数据类。当我尝试这样做时,我收到此错误:
有没有办法做到这一点?
python - 无法使用 lambda 默认腌制数据类
如果我有一个简单dataclass
的可变默认值,据我所知,我需要使用default_factory
.
但是,由于 lambda,这使得该类不可腌制:
所以如果我们腌制它:
酸洗会返回:
这是由于在 中mappingproxy
可见的对象c.__dataclass_fields__
:
如何使课程可腌制?我需要这样做才能将其发送Parallel
到joblib
.
python - 避免 @dataclass 变量声明的 Python lint 警告
我正在尝试dataclasses
Python 3.7 中的功能,但在单词“hue”下方收到此警告:
我想这是一个短绒警告。我尝试了 python 扩展提供的几个 linter,但它们都不起作用。
有没有办法启用语法检查等但避免收到此警告?
使用 pep8 发出警告
使用 pylint 或 mypy 发出警告
python - 使用 queue.PriorityQueue,不关心比较
我正在尝试queue.PriorityQueue
在 Python 3(.6) 中使用。
我想存储具有给定优先级的对象。但是如果两个对象具有相同的优先级,我也不介意PriorityQueue.get
返回。换句话说,我的对象不能以整数进行比较,允许它们进行比较是没有意义的,我只关心优先级。
在Python 3.7 的文档中,有一个解决方案涉及dataclasses
. 我引用:
如果数据元素不可比较,则可以将数据包装在一个忽略数据项而只比较优先级编号的类中:
唉,我正在使用 Python 3.6。在这个版本的 Python 的文档中,没有关于使用PriorityQueue
优先级的评论,而不是关心在我的情况下不合逻辑的“对象值”。
有没有比__le__
在我的自定义类上定义和其他比较方法更好的方法?我发现这个解决方案特别丑陋和违反直觉,但那可能是我。
python - 具有多重继承(mixin)和混合默认选项的 Python @dataclass
我正在尝试创建一个由继承的数据类组成的 Python 3.7 数据类:
这会引发以下异常:
似乎 Python 的@dataclass
分辨率在通过 MRO 反转时并没有对齐所有父级的默认和非默认选项。有没有解决的办法?
编辑:我现在使用 Pydantic 库,它提供了更多的控制以及 JSON 序列化和反序列化等附加功能。
python-3.x - 如何在 Python 3.7.x 中使用 list[customClass] 作为带有 @dataclass 的类型
我有以下数据类。
以及调用上述类的以下数据类。
尝试运行程序时出现以下错误
TypeError:泛型类型的参数必须是类型。
我也试过用_destinations
这种方式给会员打电话。
然后我收到以下错误
TypeError:泛型类型的参数必须是类型。
我也尝试将班级成员设置为
并且在检查实例对象时,类中没有可用的列表。
我也试过。
尝试添加到列表时出现以下错误
AttributeError:“DestinationContainer”对象没有属性“_destinations”
python - 具有可迭代字段的冻结和可散列数据类
现在我终于放弃了对 Python 2 的支持,我正在从 Python 3 迁移attrs
到 Python 3 dataclasses
,并且有一个问题让我特别苦恼。
假设我有一个冻结且可散列的类MyClass
,其中一个字段my_field
为 type tuple
。
多亏了attrs
转换器,我能够提供灵活的 API,客户端能够my_field
使用各种类型进行实例化,例如list
,set
或dict_keys
. 在创建类之前,它们都会自动转换为 a tuple
。
我可以保留这个 APIdataclasses
吗?
根据要求,一个小代码示例: