Вопрос о классе в python Необходимо передать весь класс с помощью метода из другого класса - PullRequest
0 голосов
/ 26 мая 2020

Я создавал несколько классов, и этот класс и его метод нужно передать методом из другого класса.

class SimplePlotGenerator:

    def __init__(self):
        self.phrase = 'Something happens'
    def generate(self):
        return self.phrase

и здесь подойдет другой класс.

pv = PlotViewer()
pv.register(SimplePlotGenerator())

pv.generate()
'Something happens'

У меня есть еще два класса для PlotGenerator.

Мой вопрос в том, как создать этот метод регистрации. Я думаю, что это может быть какое-то множественное наследование, но я как бы застрял на этом.

1 Ответ

1 голос
/ 26 мая 2020

Это не на 100% ясно, но я думаю, вы, вероятно, просто захотите сделать это параметром конструктора:

class PlotViewer:
    def __init__(self, generator):
        self.generator = generator

    def generate(self):
        self.generator.generate()

# To use
pv = PlotViewer(SimplePlotGenerator())
pv.generate()

Я предполагаю, что вам нужен параметр, а не наследование в качестве имен «генератор» и « viewer "подразумевает, что не правда, что SimplePlotGenerator" является "PlotViewer". Однако, если генератор сюжета является своего рода средством просмотра сюжета, тогда да, вы можете захотеть наследовать SimplePlotGenerator от SimplePlotViewer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...