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). След като всички меса бъдат сервирани, вие ще завършите нивото.

Книга с Код