Продвинутый курс разработки на Python
Глава
>
Уровень
Продвинутые классы
Наследование объектов
В этой главе мы изучим, как максимально эффективно использовать классы, познакомимся с различными техниками и специальными функциями классов, которые могут расширить возможности объектов в Python.
На этом уровне мы будем изучать одну из наиболее значимых расширенных функций классов — наследование объектов. Эта функция позволяет создать класс, который наследует свои функции от другого класса, что дает нам возможность создавать более динамичные объекты, сохраняя при этом основной набор свойств.

Цель
Заполните и сохраните винные бутылки, используя наследование объектов в ваших классах.
Эта комната используется для заполнения винных бутылок, несколько из них еще нужно разлить и упаковать, и это лучше всего сделать с помощью классов. Классы позволяют создавать объекты, которые могут обладать различными характеристиками, в данном случае различными видами винных бутылок. Объекты, созданные с помощью классов, могут наследовать свойства от других классов, такие классы называются дочерними, а классы, используемые в качестве основы для создания новых классов, называются родительскими.
# Parent Class
class wine_bottle:
color = ""
def set_bottle(self):
player.place("empty bottle")
# Child Class
class fill_bottle(wine_bottle):
def fill_bottle(self):
player.combine(["empty bottle", self.color + " wine"])
player.speak("The bottle's color is: %s" % self.color)
player.collect(self.color + "bottle")
Для использования установлено два (2) класса: родительский класс используется для размещения бутылки перед бочкой для заполнения, а дочерний класс применяется для комбинирования и заполнения винной бутылки. Дочерний класс наследует свойства родительского класса, что позволяет создавать варианты бутылок без лишних усилий.
Сначала пройдите и соберите четыре (4) пустые бутылки в верхней части карты. После этого направляйтесь к темным крестикам на верхней части цветных ковров и к дозаторам бочек. Здесь находятся четыре (4) цветных ковра, которые соответствуют цвету вина, которое необходимо создать в этой области, а именно: "green", "blue", "purple" и "yellow".
У темных крестиков создайте объект с использованием дочернего класса, например: green_bottle = fill_bottle(). Назовите объект в соответствии с бутылкой, которую вы пытаетесь создать, затем задайте цвет объекта и активируйте его функции.
# Green bottle setup green_bottle.color = "green" green_bottle.set_bottle() green_bottle.fill_bottle()
Сделайте это для всех четырех (4) винных бутылок на соответствующих крестиках. Когда все они будут готовы и бутылки собраны, направляйтесь к светлому кресту и откройте дверь в винный погреб с помощью функции open(), например: player.open(). Затем пройдите к золотому кресту, чтобы разместить созданные бутылки на винной полке.
Разместите все бутылки в списке с именем bottles и, находясь перед винной полкой, используйте функцию place(), чтобы сохранить список и завершить уровень. Вы соберете четыре (4) бутылки: "green bottle", "blue bottle", "purple bottle" и "yellow bottle".