Coding for KidsCoding for Kids
Творческие УровниИспытанияРуководство для Учителей
Голосовать за функции
Продвинутый курс разработки на Python
Глава
>
Уровень

Продвинутые классы
Супер функция

Цель

Соберите различные виды мяса, затем приготовьте и подайте их различными способами, создавая объекты с помощью суперфункций.

В холодильнике находится различное мясо, которое вы можете приготовить и подать с луком, который вы подготовили с маслом на предыдущем уровне. Мясо можно приготовить различными способами и до разных температур/степеней прожарки, для чего можно создавать объекты на основе классов, как в предыдущих уровнях, но с возможностью улучшения с помощью Суперфункций.

Функция super() используется аналогично переопределению методов, разница в том, что с помощью этой функции можно запустить функцию родительского класса наряду с вашим собственным кодом в дочернем классе, вместо полного переопределения функции.

# Parent Class class cooked_meat: type = "" def cook_meat(self): player.speak("Cooking the %s meat with oil and onions." % self.type) player.place("meat") player.collect("cooked %s" % self.type) # Child Class class ready_meat(cooked_meat): rarity = "" def cook_meat(self): super().cook_meat() player.speak("The meat is cooked %s" % self.rarity)

Внутри функции дочернего класса cook_meat() используется функция super(). Поскольку cook_meat() также является функцией, используемой в родительском классе, пользовательская функция обычно переопределяет наследуемый код из-за переопределения метода, но с помощью функции super() вы можете выполнить код из родительского класса, а также ваш новый код, написанный в дочернем классе.

Сначала подойдите к холодильнику и соберите четыре (4) куска мяса, которые вы будете использовать для приготовления. Каждый из четырех (4) видов мяса отличается друг от друга: "pork", "beef", "lamb" и "buffalo".

После того как мясо собрано, подойдите к светлой метке X и создайте объекты для каждого типа мяса, чтобы приготовить их. Для каждого объекта мяса установите тип мяса и степень прожарки, которую вы хотите получить, например:

pork_meat = ready_meat() pork_meat.type = "pork" pork_meat.rarity = "medium" pork_meat.cook_meat()

Степень прожарки — это температура приготовления, при которой вы хотите приготовить мясо. Приготовьте мясо до следующих степеней прожарки: "pork" до "medium", "beef" до "well done", "buffalo" до "medium rare" и "lamb" до "rare". На метке X используйте функцию дочернего класса cook_meat() после установки типа и степени прожарки мяса, как показано в примере выше.

После того как мясо будет приготовлено, подойдите к темной метке X на желтом ковре и используйте функцию collect(), чтобы взять как "salt", так и "pepper" из кладовки. Создайте список с именем ingredients и поместите в него два выбранных ингредиента, например: ingredients = ["salt","pepper"].

С дополнительными ингредиентами вы теперь можете подать мясо на тарелках, расположенных на столе. Создайте список для каждого приготовленного мяса со следующими именами: served_pork, served_beef, served_lamb и served_buffalo. Добавьте в эти списки приготовленное мясо вместе со списком ингредиентов, создав вложенный список, например:

served_pork = [] served_pork.append("cooked pork") served_pork.append(ingredients)

После того как списки будут созданы, подойдите к золотым меткам X и используйте функцию place(), чтобы подать мясо на тарелках, расположенных на прилавках. На верхней золотой метке X, повернувшись к столу, используйте place() для served_pork и served_buffalo. На нижней золотой метке X, повернувшись к столу, используйте place() для served_lamb и served_beef. Например: player.place(served_pork). После того как всё мясо будет подано, вы завершите уровень.

Книга Кода