Код: Выделить всё
class A:
def __init__(self, name):
self.name = name
class B(A):
def do_something(self):
pass
class C(A):
def do_something_else(self):
b = B(??? how to pass parameters that C has).do_something()
Код: Выделить всё
c=C(name='Bob')
Я знаю, что могу жестко запрограммировать b = B(name=self.name).do_something()< /code>, но как это сделать более гибко? Например, если подпись А изменится?
Возможно, вопрос несколько искусственный, так как дизайн неправильный и мне нужно изменить дизайн. Также приветствуются все предложения по дизайну.
Пишу парсер. Базовый парсер — A. Он может делать базовые вещи.
Парсер B может делать немного больше, он может анализировать дополнительные операции.
Парсер C может обрабатывать кортеж из двух выражений. Он делегирует синтаксический анализ первого выражения A, т. е. self, но второе выражение может обрабатываться только B.
Подробнее здесь: https://stackoverflow.com/questions/791 ... to-another