Python中的@dataclass装饰器

一、@dataclass装饰器是什么

简单来说,就是你定义一个很普通的类,@dataclass装饰器可以帮你生成__repr__、__init__等特殊方法,就不用自己写一遍了。 @dataclass装饰器返回的依然是一个class,这意味着并没有带来任何不便,我们依然可以继承这个类。

二、@dataclass装饰器提供了哪些方法

上面说了@dataclass装饰器可以帮你生成 __repr__、 __init__ 等等方法, 那它到底提供了哪些方法?这个问题可以通过查看函数的原型回答,以下为@dataclass装饰器这个函数的源代码:

Python中的@dataclass装饰器_第1张图片

参数init的默认值是True,表示装饰器会自动生成__init__方法, 如果不想让装饰器生成对应的方法,可以在入参时候将其改为False。

参数repr的默认值是True,表示装饰器会自动生成__repr__方法,如果不想让装饰器生成对应的方法,可以在入参时候将其改为False。

其它参数类似,从上面可以看到,如果不加参数,默认情况下,@dataclass装饰器会生成__repr__

你可能感兴趣的:(Python,python)