如何在Python中从基类访问派生类的实例变量

时间:2018-12-04 03:58:41

标签: python class inheritance instance derived-class

我有Python下的代码:

class Base_class():
    def __init__(self):
        pass

    # this is the method where I need help
    def compress(variable?,index?):
        somecode()

class Derived_class_1():   
    def __init__(self,somelist):
        self.A = []
        self.B = []
        for item in somelist:
            if item == 1:
                self.A.append([1,0])
                self.B.append([0,1])
            else:
                self.A.append([1,0])
                self.B.append([1,0])

class Derived_class_2(): 
    def __init__(self,somelist):
        self.A = []
        self.B = []
        for item in somelist:
            if item == 1:
                self.A.append([1,0])
                self.B.append([1,0])
            else:
                self.A.append([1,0])
                self.B.append([0,1])

我需要能够从基类中使用compress方法来访问每个实例值,并基于索引返回一维列表,前提是实例变量对于列表中的每个元素都有两个可能的值。我需要使compress方法成为一类吗?如果是这种情况,我该如何实现呢?

1 个答案:

答案 0 :(得分:0)

我看到您的代码有2个问题。

  • Derrived类不继承自Base_class
  • selfcompress中丢失了

更改:

class Base_class():
    # ...
    def compress(self, variable, index):
        print(self.A)
        print(self.B)

class Derived_class_1(Base_class):
    # ...

class Derived_class_2(Base_class):
    # ...

然后测试

>>> x = Derived_class_1([1, 2])
>>> x.compress(5, 6)
[[1, 0], [1, 0]]
[[0, 1], [1, 0]]

>>> y = Derived_class_2([1, 2])
>>> y.compress(5, 6)
[[1, 0], [1, 0]]
[[1, 0], [0, 1]]