python-dataclasses相关内容

如何在Python中修复数据类的TypeError?

我有一个具有5个属性的数据类.当我通过字典提供这些属性时,它会很好地工作.但是,当字典的属性比类的属性多时,该类将给出TypeError.我试图使当有额外的值时,该类将不在乎它们.我该怎么做? from dataclasses import dataclass @dataclass class Employee(object): name: str lastname: st ..
发布时间:2020-07-04 23:13:27 Python

如何使用Python数据类记录类的构造函数?

我有一些现有的Python 3.6代码,我想移至Python 3.7数据类.我有带有漂亮文档字符串文档的__init__方法,指定了构造函数采用的属性及其类型. 但是,如果我更改这些类以使用3.7中的新Python数据类,则构造函数是隐式的.在这种情况下,如何提供构造函数文档?我喜欢数据类的想法,但是如果我必须放弃明确的文档才能使用它们,那就不喜欢. 已编辑,以阐明我当前正在使用文档字 ..
发布时间:2020-07-04 23:13:12 Python

如何获得Python 3.7的新数据类字段类型?

Python 3.7引入了称为数据类的新功能. from dataclasses import dataclass @dataclass class MyClass: id: int = 0 name: str = '' 在函数参数中使用类型提示(注释)时,可以使用inspect模块轻松获得带注释的类型.如何获取数据类字段类型? 解决方案 from datacl ..
发布时间:2020-07-04 23:13:09 Python

如何使python数据类可哈希化?

说a我在python3中有一个数据类.我希望能够对这些对象进行哈希处理和排序. 我只希望它们按ID排序/散列. 我在文档中看到我可以只实现__hash__以及所有其他功能,但是我想让datacalses为我做这些工作,因为它们旨在解决这个问题. from dataclasses import dataclass, field @dataclass(eq=True, order= ..
发布时间:2020-07-04 23:13:05 Python

使用queue.PriorityQueue,不关心比较

我正在尝试在Python 3(.6)中使用queue.PriorityQueue. 我想存储具有给定优先级的对象.但是,如果两个对象具有相同的优先级,则我不介意PriorityQueue.get返回任何一个.换句话说,我的对象不能以整数进行比较,允许它们成为整数没有意义,我只是在乎优先级. 在 Python 3.7的文档中,有一个涉及.我引用: 如果数据元素不具有可比性,则可以将 ..
发布时间:2020-07-04 23:10:31 Python

如何忽略传递给数据类的额外参数?

我想创建一个config dataclass,以简化对特定环境变量的白名单和访问(键入os.environ['VAR_NAME']相对于config.VAR_NAME是乏味的).因此,我需要忽略dataclass的__init__函数中未使用的环境变量,但是我不知道如何提取默认的__init__以便将其包装起来,例如,该函数还包含作为参数之一. import os from dataclas ..
发布时间:2020-07-04 23:10:20 Python

通过属性使用具有依赖属性的数据类

我有一个类,例如Circle,它具有相关属性radius和circumference.在这里使用dataclass是有意义的,因为__init__,__eq__,__repr__的样板和排序方法(__lt__,...). 我选择其中一个属性来依赖另一个属性,例如圆周是根据半径计算得出的.由于该类应支持使用两个属性之一进行初始化(+将它们包含在__repr__和dataclasses.asdi ..
发布时间:2020-07-04 23:07:51 Python

Python数据类和属性装饰器

我一直在阅读Python 3.7的数据类,以替代namedtuple(当我必须在结构中对数据进行分组时通常使用的).我想知道dataclass是否与属性装饰器兼容,以便为dataclass的数据元素定义getter和setter函数.如果是这样,这在某处有描述吗?还是有可用的示例? 解决方案 确定有效: from dataclasses import dataclass @data ..
发布时间:2020-07-04 23:07:45 Python

在namedtuple中输入提示

考虑以下代码: from collections import namedtuple point = namedtuple("Point", ("x:int", "y:int")) 上面的代码只是演示我要实现的目标的一种方法. 我想用类型提示使namedtuple. 您知道如何以一种优雅的方式达到预期效果吗? 解决方案 类型为3.6的命名元组的首选语法为 from t ..
发布时间:2020-07-04 23:07:39 Python

Python 3.7数据类中的类继承

我目前正在尝试Python 3.7中引入的新数据类构造.我目前坚持尝试做一些父类的继承.看来参数的顺序已被我当前的方法所破坏,使得子类中的bool参数在其他参数之前传递.这会导致类型错误. from dataclasses import dataclass @dataclass class Parent: name: str age: int ugly: bool ..
发布时间:2020-07-04 23:06:33 Python

验证python数据类中的详细类型

Python 3.7是在不久前发布的,我想测试一些新的dataclass + typing功能.使用本机类型和typing模块中的本机类型,使提示正确工作很容易: >>> import dataclasses >>> import typing as ty >>> ... @dataclasses.dataclass ... class Structure: ... a_str: ..
发布时间:2020-07-04 23:06:30 Python

什么是数据类,它们与普通类有何不同?

通过 PEP 557 数据类被引入python标准库. 它们使用@dataclass装饰器,并且应该是“带有默认值的可变命名元组",但是我不确定我是否真正理解这是什么意思,以及它们与普通类的区别. 什么是python数据类,什么时候最好使用它们? 解决方案 数据类只是用于存储状态的常规类,它不仅包含许多逻辑.每次创建一个主要由属性组成的类时,就创建了一个数据类. data ..
发布时间:2020-07-04 23:06:25 Python