448得票4回答
数据类是什么,它们与普通类有何不同?

PEP 557 将数据类引入了Python标准库。它表示通过应用下面展示的@dataclass装饰器,它将生成“包括但不限于__init__()”。 from dataclasses import dataclass @dataclass class InventoryItem: ...

285得票16回答
Python 3.7中的类继承和数据类

我目前正在尝试使用Python 3.7中引入的新数据类构造。我现在被卡住了,试图对父类进行一些继承。看起来我的当前方法中参数的顺序混乱了,导致子类中的bool参数在其他参数之前传递。这导致了类型错误。from dataclasses import dataclass @dataclass c...

250得票7回答
数据类与typing.NamedTuple的主要用途

长话短说 PEP-557 向 Python 标准库引入了数据类,其基本上可以扮演与collections.namedtuple和typing.NamedTuple相同的角色。现在我在想如何区分仍然更适合使用namedtuple的用例。 Data classes 相对 NamedTuple ...

241得票3回答
命名元组中的类型提示

考虑以下代码片段:from collections import namedtuple point = namedtuple("Point", ("x:int", "y:int")) 上面的代码只是为了演示我想要实现的内容。 我想使用类型提示创建 namedtuple 。 你知道任何优雅的方...

183得票17回答
Python数据类如何从嵌套字典中创建?

在3.7中,标准库可以递归地将数据类转换为字典(来自文档的示例):from dataclasses import dataclass, asdict from typing import List @dataclass class Point: x: int y: int...

182得票13回答
使Python的json编码器支持Python的新数据类

从Python 3.7开始,有一种叫做dataclass的东西:from dataclasses import dataclass @dataclass class Foo: x: str 然而,以下失败:>>> import json >>> f...

173得票10回答
如何避免在__init__中使用"self.x = x; self.y = y; self.z = z"模式?

我看到类似的模式def __init__(self, x, y, z): ... self.x = x self.y = y self.z = z ... 经常出现这种情况,通常还带有更多的参数。有没有好的方法来避免这种繁琐的重复?应该让类继承自name...

146得票4回答
如何使一个Python数据类可哈希化?

我有一个数据类,我想要对其实例进行哈希和排序,使用id成员作为键。 from dataclasses import dataclass, field @dataclass(eq=True, order=True) class Category: id: str = field(co...

112得票2回答
传递默认列表参数给dataclasses

我想在我的类中传递默认参数,但是我遇到了一些问题。from dataclasses import dataclass, field from typing import List @dataclass class Pizza(): ingredients: List = field(...

91得票4回答
在Python数据类中验证详细类型

Python 3.7已经发布一段时间了,我想测试一些新的dataclass+typing功能。让提示正确工作非常容易,既可以使用本地类型,也可以使用typing模块中的类型: >>> import dataclasses >>> import typing...