簡單來說,就是你定義一個很普通的類,@dataclass裝飾器可以幫你生成__repr__、__init__等特殊方法,就不用自己寫一遍了。 @dataclass裝飾器返回的依然是一個class,這意味著並沒有帶來任何不便,我們依然可以繼承這個類。
上面說了@dataclass裝飾器可以幫你生成 __repr__、 __init__ 等等方法, 那它到底提供了哪些方法?這個問題可以通過查看函數的原型回答,以下為@dataclass裝飾器這個函數的源代碼:
參數init的默認值是True,表示裝飾器會自動生成__init__方法, 如果不想讓裝飾器生成對應的方法,可以在入參時候將其改為False。
參數repr的默認值是True,表示裝飾器會自動生成__repr__方法,如果不想讓裝飾器生成對應的方法,可以在入參時候將其改為False。
其它參數類似,從上面可以看到,如果不加參數,默認情況下,@dataclass裝飾器會生成__repr__、