Python @dataclass Inheritance of Public 没有双重初始化的变量

Python @dataclass Inheritance of Public Variables without double initialization

想要在一个 class 中写入变量,然后在另一个 class 中继承这些设置的变量值,而无需再次设置这些值。

下面的代码应该打印 100,而不必为 subclass 实例再次初始化值;想使用 master class(数据处理程序)中的原始设置值。

一个class管理所有收入数据;数据处理程序,然后其他 classes 简单地继承这些值。处理这种流结构的方式是什么?请谢谢!!

from dataclasses import dataclass


@dataclass
class Datahandler: 


    A : int
    B : int
    C : int
    D : int
    E : int
    F : int     



Datahandler=Datahandler(100,100,50,40,10,1000)    




class Some_Class(Datahandler):       

    pass


print(Some_Class.A)

要定义 class 的属性,请在 class 定义中分配给它,而不是在任何函数中。

class Datahandler: 
    staticmember = 200

dataclass class 帮不了你。它用于定义 class 实例 的属性,而不是 classes.

然后您可以访问派生 class 中的基础 class 成员,这就是您想要做的。

class Some_Class(Datahandler):       
    pass

print(Some_Class.staticmember)

此外,您应该避免对 class 和 class 的实例使用相同的名称。

Datahandler=Datahandler(100,100,50,40,10,1000) #Likely problematic

编辑:虽然我回答了发布的问题,但有更简单的方法可以在不使用继承的情况下做同样的事情,正如@juanpa.arrivillaga所建议的那样。