Python 3.x Python3.7数据类:为未定义的属性赋值时引发错误

Python 3.x Python3.7数据类:为未定义的属性赋值时引发错误,python-3.x,error-handling,python-dataclasses,Python 3.x,Error Handling,Python Dataclasses,我想将dataclass的使用限制为代码的用户,我想知道如何在以下上下文中引发错误: from dataclasses import dataclass @dataclass class Foo: attr1: str foo = Foo("1") foo.attr2 = "3" #I want this line to raise an exception 当前,最后一行成功,并且不更改基础对象。我希望最后一行抛出错误。您可以像任何其他类一样向dataclass添加属性。尝试创建

我想将dataclass的使用限制为代码的用户,我想知道如何在以下上下文中引发错误:

from dataclasses import dataclass

@dataclass
class Foo:
    attr1: str

foo = Foo("1")
foo.attr2 = "3" #I want this line to raise an exception
当前,最后一行成功,并且不更改基础对象。我希望最后一行抛出错误。

您可以像任何其他类一样向dataclass添加属性。尝试创建实例的新属性将失败,出现
AttributeError

@dataclass
class Foo:
    __slots__ = ("attr1",)
    attr1: str

foo = Foo("1")
foo.attr2 = "3"
# AttributeError: 'Foo' object has no attribute 'attr2'