数据类:尝试在Python中理解它们[关闭]

问题描述 投票:0回答:1

我正在学习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

不确定为什么。

python python-dataclasses
1个回答
3
投票

你没有用导入的

@dataclass
装饰器来装饰你的类,所以它只是一个普通的旧类,有一堆注释,但没有具体的
__init__
,所以它继承了
object
__init__
,不带任何参数。

from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int
    height: float
    email: str

将会有

dataclass
发挥其魔力来读取这些注释并添加构造函数和数据类所做的所有其他事情。

© www.soinside.com 2019 - 2024. All rights reserved.