Python Наследование, изменение инициализированного члена базового класса - PullRequest
0 голосов
/ 26 марта 2020

Если у меня есть унаследованный класс, подобный этому:

phonebook = {"John": 123, "Rose": 234, "Miles": 345}
class Base(AbstractBase):
    def __init__(self):
        self.phonebook = phonebook

    def doSomething(self):
        aFunctionThatDoesSomething(phonebook)

Как я могу унаследовать этот класс и вызвать функцию, если у меня есть другая телефонная книга, которую я хочу использовать? Я знаю, что могу добавить его в качестве параметра, но есть ли способ сделать это, не добавляя его в init ?

В идеале я хочу написать переопределение функции, которое использует новое значение, которое инициализируется. Вот как то так:

class Derived(Base):
   def aFunctionThatDoesSomething(self):
       # I want to add some names to the phonebook in the base class here
       self.phonebook = addContacts(self.phonebook)
       super().aFunctionThatDoesSomething()

...