在python37版本中,引入了一个新的装饰器,@dataclass
对于官方的介绍,譬如一键生成__init__, repr等魔法函数就不先讨论了,直接告诉大家这个东西怎么玩
首先,常规类定义和调用方法
class Test:
className = 'Test'
def __init__(self, name, age):
self.name = name
self.age = age
def go(self):
print(self.className, self.name, self.age)
a = Test(name='luoxiaofeng', age=24)
a.go()
# >>> Test luoxiaofeng 24
@dataclass装饰器下类的简洁用法
from dataclasses import dataclass
@dataclass
class Test:
name: str
age: int
className = 'Test'
def go(self):
print(self.className, self.name, self.age)
a = Test(name='luoxiaofeng', age=24)
a.go()
# >>> Test luoxiaofeng 24
两点区别:
1、常规类的参数传递全都是在__init__里面进行的&