这个看起来像是以前有人问过的问题,但是一个小时左右的搜索没有结果。Passing default list argument to dataclasses看起来很有前途,但这并不是我想要的。
问题是:当试图将可变值赋给类属性时,会出现一个错误:
@dataclass
class Foo:
bar: list = []
# ValueError: mutable default <class 'list'> for field a is not allowed: use default_factory
我从错误消息中得知,我应该改为使用以下内容:
@dataclass
class Foo:
bar: list = field(default_factory=list)
但为什么不允许可变违约呢?是为了强制避免mutable default argument problem?
目前没有回答
相关问题 更多 >
编程相关推荐