我正在学习Python课程。也在尝试学习数据类。
from dataclasses import dataclass
class Person():
name: str
age: int
height: float
email: str
person = Person('Joe', 25, 1.85, '[email protected]')
print(person.name)
错误:
TypeError: Person() takes no arguments
不确定为什么。
你没有用导入的
@dataclass
装饰器来装饰你的类,所以它只是一个普通的旧类,有一堆注释,但没有具体的 __init__
,所以它继承了 object
的 __init__
,不带任何参数。
from dataclasses import dataclass
@dataclass
class Person:
name: str
age: int
height: float
email: str
将会有
dataclass
发挥其魔力来读取这些注释并添加构造函数和数据类所做的所有其他事情。