Coding for KidsCoding for Kids
Niveaux CréatifsDéfisGuide de l'Enseignant
Voter pour les fonctionnalités
Cours avancé de développement Python
Chapitre
>
Niveau

Classes avancées
Super Fonction

Objectif

Rassemblez différentes viandes puis faites-les cuire et servez-les de diverses manières en créant des objets avec des Super Functions.

Le réfrigérateur contient diverses viandes que vous pouvez cuisiner et servir avec les oignons que vous avez préparés avec de l'huile lors du niveau précédent. Les viandes peuvent être cuites de différentes manières et à différentes températures/degrés de cuisson. Vous pouvez réaliser cela en créant des objets à partir de classes, tout comme dans les niveaux précédents, mais cela peut être amélioré en utilisant des Super Functions.

La fonction super() est utilisée de manière similaire à la redéfinition de méthode, la différence étant qu'en utilisant cette fonction, vous pouvez exécuter la fonction de la classe parent en plus de votre propre code dans la classe enfant au lieu de remplacer complètement la fonction.

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

À l'intérieur de la fonction classe de l'enfant cook_meat(), la fonction super() est utilisée. Comme cook_meat() est également une fonction utilisée dans la classe parent, la fonction personnalisée remplacerait normalement le code hérité en raison de la redéfinition de méthode, mais en utilisant la fonction super(), vous pouvez exécuter le code de la classe parent ainsi que le nouveau code que vous écrivez dans la classe enfant.

Tout d'abord, allez au réfrigérateur et récupérez les quatre (4) morceaux de viande que vous allez utiliser pour cuisiner. Chacune des quatre (4) viandes est d'un type différent, à savoir : "pork", "beef", "lamb" et "buffalo".

Une fois collectées, rendez-vous à la marque X claire et créez des objets pour chacune des viandes afin de les cuisiner. Pour chaque objet viande, définissez le type de viande et la cuisson souhaitée, par exemple:

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

La cuisson (rarity) correspond à la température à laquelle vous souhaitez que la viande soit cuite. Faites cuire les viandes selon les cuissons suivantes : "pork" cuit en "medium", "beef" cuit en "well done", "buffalo" cuit en "medium rare" et "lamb" cuit en "rare". À la marque X, utilisez la fonction de la classe enfant cook_meat() après avoir défini le type et la cuisson de la viande comme indiqué dans l'exemple ci-dessus.

Une fois les viandes cuites, rendez-vous à la marque X foncée sur le tapis jaune et utilisez la fonction collect() pour récupérer à la fois "salt" et "pepper" dans le garde-manger. Créez une liste nommée ingredients et placez-y les deux ingrédients ramassés, comme ceci : ingredients = ["salt","pepper"].

Avec les ingrédients supplémentaires, vous pouvez maintenant servir la viande avec des assiettes sur la table. Créez une liste pour chacune des viandes cuites avec les noms suivants : served_pork, served_beef, served_lamb et served_buffalo. Ajoutez à ces listes les viandes que vous avez cuites ainsi que la liste des ingrédients en créant une liste imbriquée, par exemple:

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

Une fois les listes configurées, rendez-vous aux marques X dorées et utilisez la fonction place() pour servir la viande sur les assiettes qui se trouvent sur les comptoirs. Sur la marque X dorée supérieure, face à la table, place() les : served_pork et served_buffalo. Sur la marque X dorée inférieure, face à la table, place() les : served_lamb et served_beef. Par exemple : player.place(served_pork). Une fois toutes les viandes servies, vous aurez terminé le niveau.

Livre de Code