Доступ к атрибуту класса из подкласса (Python)? - PullRequest
0 голосов
/ 30 октября 2018

Вот формат моего кода:

class A(object):
    def __init__(self, x, other):
        self.other = other
        self.x = x
class B(A):
    def __init__(self):
        # place code here
    def something_else(self):
        return self.x["foo"]

x - это объект, который я хотел бы вызвать, с последующим индексом (в something_else.

Я бы хотел, чтобы только x было унаследовано от родительского класса. Важно, что other не наследуется, поэтому super().__init__ не подходит.

Я попытался обойти эту проблему, создав функцию в class A:

def x(self):
    return self.x

чтобы я мог позвонить super().x() в class B, но это тоже не сработало.

Я попытался позвонить напрямую super.x["foo"], но это не сработало.

Как я могу добиться того, чего хочу в моем случае? Спасибо!

1 Ответ

0 голосов
/ 30 октября 2018

Переменные не всегда должны регистрироваться в функции __init__, если вы хотите x из класса A, иметь метод в A:

def set_x(self, x):
    self.x = x
    # other stuff

вы все равно сможете вызывать set_x из класса B, так как все функции наследуются, оттуда вы можете создать экземпляр свойства x без вызова __init__ из A.

...