Python 如何引用父类';没有实例的类变量

Python 如何引用父类';没有实例的类变量,python,class,inheritance,Python,Class,Inheritance,给出了错误: class A(): a = [1, 2] class B(A): a = super().a + [3] 我希望结果是 RuntimeError: super(): no arguments 您可以使用A.A而不是super 但是,如果没有创建实例,则不能调用super。像这样: class B(A): a = [1, 2, 3] 然后,在创建实例时: class A(): def __init__(self):

给出了错误:

class A():
    a = [1, 2]

class B(A):
    a = super().a + [3]
我希望结果是

 RuntimeError: super(): no arguments

您可以使用
A.A
而不是super

但是,如果没有创建实例,则不能调用super。像这样:

 class B(A):
     a = [1, 2, 3]
然后,在创建实例时:

class A():
    def __init__(self):        
        self.a = [1, 2]

class B(A):
    def __init__(self):
        super(B, self).__init__()
        self.a += [3]

类变量可以被类访问,同时类的实例也可以访问 所以这里发生的事情是,当我们试图访问实例上的属性时,它首先检查实例是否包含该属性;如果没有,它将检查父类或它从中继承的任何类是否包含这些属性

i = B()

print(i.a)
>> [1, 2, 3]
测试

class A(): 
    a = [1, 2] 

class B(A): 
    a = A.a + [3]
print(A.a)  # access class variable using the class
print(B.a)  # access class variable using the class inheritance as B inherit from A
ins = A()   # initializing instance of class A
print(ins.a)  # access class variable using instance of the class
输出

class A(): 
    a = [1, 2] 

class B(A): 
    a = A.a + [3]
print(A.a)  # access class variable using the class
print(B.a)  # access class variable using the class inheritance as B inherit from A
ins = A()   # initializing instance of class A
print(ins.a)  # access class variable using instance of the class

正如你所看到的,我们得到了相同的输出。

使用
A.A+[3]
根据你对问题的评论,你需要澄清你的问题。不过我想把它作为一个混音,所以不要提及
A
我不确定你对混音的意思,对不起。我意识到我的情况实际上是不同的。我希望
B
成为一个混音,为任何类提供[3]到
.a
。另外,在我的情况下,我被迫处理类变量,无法重新定义
\uuu init\uuu
。让我检查一下您的情况。如果
B
是一个混合体,我想您应该将
B
添加到其他类中,而不是将它们添加到
B
。正当