【发布时间】:2021-04-26 08:14:44
【问题描述】:
我有一个 Python 数据类定义如下:
@dataclass(order=True)
class Accident:
name: str
year: int
month: int
num_accidents: int
我正在创建一个“意外”实例列表,如下所示:
accidents_list = []
# For the year 2020, create instances to record accidents per month
for month in range(1,13):
# name will be in the format 2020-1, or 2020-2 and so on
name = "2020" + "-" + str(month)
# I am adding name, year and month, accidents to be added later
accidents_list.append(Accident(name, 2020, month))
我想将事故数量添加到 2020-02,即 2 月。 如何引用实例来添加事故数量?我不能在 for 循环中添加事故,因为在创建此实例时我没有数据。
我想做类似2020-02.num_accidents = 5 的事情。我不想用每个月的 if 语句来遍历事故列表,如果列表真的很大,那将是太多的事情。
for accidents in accidents_list:
if (accident.name == '2020-02'):
accident.num_accidents = 5
elif (accident.name = '2020-03'):
accident.num_accidents = 12
【问题讨论】:
-
与您引用任何其他“类型”实例的方式相同吗?如果你想通过一个键选择实例,创建一个数据结构来通过一个键选择实例——比如
dict。 -
在实际获得事故数据之前,您是否有任何理由创建
Accident实例?当你有数据时,为什么不稍后再创建它们呢? -
> 是否有任何理由在您实际拥有事故数据之前创建事故实例?事故数量来自昂贵的 API 调用,我正在尝试优化我的代码并让我的数据结构“准备好”和“预加载”,API 调用稍后会填充事故数量。
-
> 当我们告诉你你做错了,你会变成废柴吗?大声笑,不,我是来学习的,告诉我我以“错误”的方式做这件事并没有什么坏处。
-
好的,那么
5和12这样的数据是从哪里来的呢?
标签: python-3.x python-dataclasses