Предположим, у меня есть эти классы, у которых есть атрибуты и методы, которые я хочу использовать в объектах, которые я создам позже:
Код: Выделить всё
class Fruit:
"""Has lots of attributes and methods."""
class Vegtable:
"""Has lots of attributes and methods."""
class Gummy:
"""Has lots of attributes and methods."""
Код: Выделить всё
CarrotGummy
- Я стремлюсь избежать множественного наследования. , например класс CarrotGummy(Vegtable, Gummy), чтобы не возникало проблемы с алмазами, если они оба наследуют Food.
- Я читал о композиции. Но есть случаи, когда мне нужно переопределить или использовать другое поведение для определенных объектов. Поэтому, если я делаю что-то вроде следующего, я не могу воспользоваться преимуществами ООП и не могу выбирать различные варианты поведения в зависимости от объекта.
Код: Выделить всё
class CarrotGummy:
def __init__(self):
vegtable = Vegtable()
gummy = Gummy()
- Предполагается, что у нас нет Gummy объектов, которые не являются фруктами или овощами code> упрощает проблемы? Например, если у нас нет объекта GummyBear.
Подробнее здесь: https://stackoverflow.com/questions/793 ... ritance-in