Coding for KidsCoding for Kids
Níveis CriativosDesafiosGuia do Professor
Votar em funcionalidades
Curso Avançado de Desenvolvimento Python
Capítulo
>
Nível

Classes Avançadas
Função Super

Objetivo

Reúna várias carnes e cozinhe e sirva-as de maneiras diferentes criando objetos com super funções.

O refrigerador possui várias carnes que você pode cozinhar e servir com as cebolas que você preparou com óleo no nível anterior. As carnes podem ser cozidas de maneiras diferentes e em diferentes temperaturas/níveis de cozimento; você pode conseguir isso criando objetos a partir de classes, assim como nos níveis anteriores, mas que podem ser aprimorados usando Super Funções.

A função super() é usada de forma semelhante à sobrescrita de métodos; a diferença é que, ao utilizar essa função, você pode executar a função da classe pai além do seu próprio código na classe filha, em vez de sobrescrever completamente a função.

# 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)

Dentro da função classe filha cook_meat(), a função super() é utilizada. Como cook_meat() também é uma função da classe pai, a função personalizada normalmente sobrescreveria o código herdado devido à sobrescrita de método, mas ao usar a função super() você pode executar o código na classe pai, bem como o novo código que você escreve na classe filha.

Primeiro, caminhe até o refrigerador e colete os quatro (4) pedaços de carne que você usará para cozinhar. Cada uma das quatro (4) carnes é de um tipo diferente, sendo eles: "pork", "beef", "lamb" e "buffalo".

Uma vez coletadas, caminhe até a marca X clara e crie objetos para cada uma das carnes a fim de cozinhá-las; para cada objeto de carne, defina o tipo de carne e a raridade com que você deseja cozinhá-las, por exemplo:

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

A raridade é a temperatura de cozimento desejada para a carne; faça as carnes serem cozidas nas seguintes raridades: "pork" cozida "medium", "beef" cozida "well done", "buffalo" cozida "medium rare" e "lamb" cozida "rare". Na marca X, use a função cook_meat() da classe filha após definir o tipo e a raridade da carne, conforme mostrado no exemplo acima.

Depois que as carnes tiverem sido cozidas, caminhe até a marca X escura no tapete amarelo e use a função collect() para pegar tanto o "salt" quanto o "pepper" da despensa. Crie uma lista chamada ingredients e coloque os dois ingredientes coletados, assim: ingredients = ["salt","pepper"].

Com os ingredientes extras, agora você pode servir a carne com pratos na mesa. Crie uma lista para cada uma das carnes cozidas com os seguintes nomes: served_pork, served_beef, served_lamb e served_buffalo. Acrescente a essas listas as carnes que você cozinhou juntamente com a lista de ingredientes, criando uma lista aninhada, por exemplo:

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

Depois que as listas estiverem configuradas, caminhe até as marcas X douradas e use a função place() para servir as carnes nos pratos que estão nas bancadas. Na marca X dourada superior, de frente para a mesa, use place() em: served_pork e served_buffalo. Na marca X dourada inferior, de frente para a mesa, use place() em: served_lamb e served_beef. Por exemplo: player.place(served_pork). Assim que todas as carnes forem servidas, você terá completado o nível.

Livro de Código