Как получить доступ к переменной экземпляра производного класса из базового класса в Python - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть следующий код в 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])

Мне нужно иметь возможность в методе сжатия из базового класса получить доступ к каждому из значений экземпляра и вернуть список одного измерения на основеиндекс, учитывая, что переменная экземпляра имеет два возможных значения для каждого элемента в списке.Нужно ли делать метод сжатия классом?И если это так, как я могу сделать это возможным?

1 Ответ

0 голосов
/ 04 декабря 2018

2 проблем с вашим кодом.

  • Derrived классы не наследуются от Base_class
  • self отсутствует от compress

Изменения:

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]]
...