欢迎关注微信公众号“Python小灶,和我一起每天学习Python新知识”,还可添加博主Vx:yf03064131,方便一起交流学习。
或者B站搜索 有只小新
dataclass的使用
Python3.7 提供了一个装饰器dataclass,用以把一个类转化为dataclass。
你需要做的就是把类包裹进装饰器里:
from dataclasses import dataclass
@dataclass
class A:
…
from dataclasses import dataclass
# before
class Number:
def __init__(self, val):
self.val = val
one = Number(1)
print(one.val)
# after
@dataclass
class Number:
val: int
one = Number(1)
print(one.val)
dataclass带来的变化
以下是dataclass装饰器带来的变化:
1、无需定义__init__,然后将值赋给self,dataclass负责处理它(LCTT 译注:此处原文可能有误,提及一个不存在的d)
2、我们以更加易读的方式预先定义了成员属性,以及类型提示。我们现在立即能知道val是int类型。这无疑比一般定义类成员的方式更具可读性。
它也可以定义默认值:
@dataclass
class Number:
val:int = 0