python-dataclasses相关内容

Python3--数据类和字典,哪一个访问数据更快?

Python3.7引入了dataclasses来存储数据。我正在考虑采用这种比词典更有条理、结构更好的新方法。 但我有一个疑问。Python将键转换为DICT上的散列,这使得查找键和值的速度更快。数据类实现了类似的东西吗? 哪个更快?为什么? 推荐答案 Python中的所有类实际上都在幕后使用字典来存储它们的属性,您可以在文档中阅读here。要更深入地了解Python类(以 ..
发布时间:2022-04-11 17:14:22 Python

数据类和属性装饰器

我一直在研究作为命名元组(必须在结构中分组数据时通常使用的)的替代方案的Python3.7的数据类。我想知道数据类是否与属性修饰符兼容,以便为数据类的数据元素定义getter和setter函数。如果是这样的话,这是在什么地方描述的吗?或者有可用的例子吗? 推荐答案 确实有效: from dataclasses import dataclass @dataclass class ..
发布时间:2022-04-11 17:03:02 Python

在 Python 中创建嵌套的数据类对象

我有一个数据类对象,其中嵌套了数据类对象.但是,当我创建主对象时,嵌套对象变成了字典: @dataclass第一类:f_one: 整数@数据类第一类:f_one: 整数f_two: str@数据类第二类:f_三:strf_four:一数据 = {'f_three':'三','f_four':{'f_one':1,'f_two':'二'}}二 = 二(**数据)二二(f_three='三', f_ ..
发布时间:2022-01-07 13:12:47 Python

如何在不注释类型的情况下添加数据类字段?

当数据类中有一个字段的类型可以是任何类型时,如何省略注解? @dataclass班级最爱:收藏编号:int = 80085fav_duck = object()fav_word: str = '土豆' 似乎上面的代码实际上并没有为 fav_duck 创建一个字段.它只是使它成为一个普通的旧类属性. >>>收藏夹()收藏夹(fav_number=80085, fav_word='土豆')>>> ..
发布时间:2021-11-10 22:27:04 Python

带有列表注释的嵌套 python 数据类

蟒蛇^3.7.尝试创建嵌套数据类以处理复杂的 json 响应.我设法通过为 json 的每个级别创建数据类并使用 __post_init_ 将字段设置为其他数据类的对象来做到这一点.然而,这会创建大量样板代码,而且嵌套对象没有注释. 这个答案帮助我更接近使用包装器的解决方案: https://stackoverflow.com/a/51565863/8325015 但是对于属性是 ..
发布时间:2021-09-29 18:40:35 Python

Python:从基类数据类继承的数据类,如何将值从基类升级到新类?

如何将值从基础数据类升级到继承自它的数据类? 示例(Python 3.7.2) from dataclasses import dataclass@数据类班级人物:名称:str气味:str =“好"@数据类班级朋友(人):# ...更多字段def say_hi(self):打印(f'嗨{self.name}')朋友 = 朋友(姓名 =“亚历克斯")f1.say_hi() 打印“嗨亚历克斯 ..
发布时间:2021-06-28 19:07:08 Python

Python 嵌套数据类……这有效吗?

背景 我使用数据类来创建嵌套数据结构,我用它来表示复杂的测试输出. 以前我通过创建多个顶级数据类然后使用组合来创建层次结构: from dataclasses import dataclass@数据类元类:颜色:str尺寸:浮动@数据类类点:x:浮动y:浮动东西:元point1 = Point(x=5, y=-5, stuff=Meta(color='blue', size=20)) ..
发布时间:2021-06-28 19:07:05 其他开发

如何在 Python 中的 Dataclasses 中使用 __post_init__ 方法

我正在尝试使用 Python 中的数据类来弄脏我的手,我想做的是在我的类中有一个计算字段,并将 sort_index 字段添加到调用中,但也想让它冻结,这样我就不能定义后修改该类的任何属性.下面是我的代码: from dataclasses import dataclass, fielddef _get_year_of_birth(age: int, current_year: int=2019 ..
发布时间:2021-06-28 19:06:17 其他开发

如何在冻结的数据类自定义 __init__ 方法中设置属性?

我正在尝试构建一个 @dataclass 来定义架构,但实际上并未使用给定成员进行实例化.(基本上,我为了其他目的劫持了方便的 @dataclass 语法).这几乎就是我想要的: @dataclass(frozen=True, init=False)类棘手:事情1:int事情2:strdef __init__(self, thing3):self.thing3 = thing3 但是我在 __ ..
发布时间:2021-06-28 19:05:49 Python

非特定数据类实例的类型提示

我有一个函数可以接受任何 dataclass 的实例.什么是合适的类型提示? 在python文档中没有找到官方的内容 这是我一直在做的,但我认为这是不正确的 from 输入 import Any, NewTypeDataClass = NewType('DataClass', Any)def foo(obj: 数据类):... 另一个想法是使用协议 具有这些类属性 __datacl ..
发布时间:2021-06-22 20:00:52 Python

使用python数据类实现多重继承

我正在尝试使用新的 python 数据类来创建一些混合类(在我写这篇文章时,我认为这听起来像是一个轻率的想法),但我遇到了一些问题.看下面的例子: 从数据类导入数据类 @dataclassNamedObj 类:名称:strdef __post_init__(self):打印(“NamedObj __post_init__")self.name = "姓名:" + self.name@数据类 ..

我如何才能使python数据类可哈希化而又不能使它们不变?

说a我在python3中有一个数据类.我希望能够对这些对象进行哈希处理和排序.我不希望这些是一成不变的. 我只希望它们按ID排序/散列. 我在文档中看到我可以只实现_ hash _以及所有其他功能,但是我想让datacalses为我完成这项工作,因为它们旨在解决这个问题. 从数据类中的 导入数据类,字段@dataclass(eq = True,order = True)班级类别:i ..
发布时间:2021-05-13 20:27:30 Python

在Django模型中使用Python数据类

我的目标是在Django PostgreSQL中创建类似结构的对象,例如: specs.coordinate.x规格协调specs.coordinate.z 因此, x , y , z 应该是坐标的子类.它们也应该是可变的,因此不能使用命名的元组. 我已经尝试使用新的数据类: django.db导入模型中的 从数据类导入数据类类Specs(models.Model):名称= m ..
发布时间:2021-05-01 20:27:22 Python

dataclasses.Field不能将类型注释解析为实际类型

python标准的 Field 类的文档数据类模块仅指定: 其记录的属性为: [...] type:字段的类型. 对我来说,这似乎意味着该字段将包含类型本身,而不仅是字符串形式的名称. 但是,似乎它只是简单地按原样复制类型注释,从而使它变得毫无用处. 示例: @dataclasses.dataclass class C: c: 'C' datac ..
发布时间:2020-07-04 23:16:44 Python