【发布时间】:2021-09-22 14:41:44
【问题描述】:
我想用值填充数据类(不是在初始化时)。我试过了:
from random import randint
from dataclasses import dataclass
@dataclass
class VData:
var_a: list = None
var_b: list = None
var_c: list = None
X = VData
for var in VData.__dataclass_fields__:
l = [randint(0, 10), randint(0,10)]
X.__setattr__(X, var, l)
但得到错误:can't apply this __setattr__ to type object。如何正确循环变量?
【问题讨论】:
-
您似乎正在尝试将数据类字段用作类变量。如果是这样,我会将它们注释为
ClassVar[list]。 -
也使用
fields而不是x.__dataclass_fields__,这是未记录的,将来可能会在某个地方中断 -
你想用值或类的实例填充类本身吗?
-
我想用不同的开始列表(一组坐标)创建这个类的多个实例。
标签: python-3.x python-dataclasses