#python #ооп
Пишу калькулятор на python. У меня есть 2 типа кнопок: цифры и операции. Описал 3 класса: класс кнопки(родитель), классы кнопки-операции и кнопки-цифры(дочерние). class Button: pass class NumberButton(Button): pass class OperationButton(Button): pass Есть макет калькулятора, сделанный на PyQt5, где каждая кнопка имеет имя: а) num0, num1, num2, ... , num9 - кнопки цифр б) op_plus, op_minus, op_divide, op_multiply - кнопки операций Вопрос. Как можно вынести конструктор в класс-родителя Button, чтобы я, смог создавать объект класса через базовый класс, который сам бы определял, объект какого дочернего класса нужно создать? Хочу: button = Button(button_name) Не хочу: if button_name == num0 or ... button_name == num0: button = NumberButton(button_name) else: button = OperationButton(button_name)
Ответы
Ответ 1
Примерно как-то так: class Button: def __new__(cls, name): if 'num' in name: return NumberButton(name) else: return OperationButton(name)
Комментариев нет:
Отправить комментарий