Nous allons apprendre un style de programmation moderne appelé la Programmation Orientée Objet [POO]. Mais avant d’écrire des programmes orientés-objet, nous devons tout d’abord apprendre à lire et à comprendre la notation utilisée.
Milou est un chien. Pendant une journée typique, il fait diverses actions: il mange, il court, il dort, etc. Voici comment un programmeur utilisant la POO pourrait écrire ceci:
Milou = Chien()
Milou.mange()
Milou.court()
Milou.dort()
De plus, Milou a diverses qualités ou attributs. Ces attributs sont des variables, comme nous avons vu auparavant, sauf qu’elles “appartiennent” à Milou. Par exemple, Milou est petit et son poil est noir. Un programmeur pourrait décrire ceci comme suit:
Milou.taille = "petit"
Milou.couleur_de_poil = "noir"
Dans le langage de la programmation orientée objet, nous avons ce qui suit:
Les objets peuvent avoir d’autres objets qui leur “appartiennent”, chacun avec ses propres méthodes ou attributs:
Milou.queue.remue()
Milou.queue.type = "fournie";
Milou.patte_avant_gauche.bouge()
Milou.tête.bouche.dents.canine.est_douloureuse()
Voyons maintenant comment Reeborg utilise la notation pointée.
Jusqu’à maintenant, nous avons écrit des programmes sans utiliser la notation pointée. C’est le temps d’apprendre à le faire, en commençant avec un exemple simple.
En premier, sélectionnez le monde Vide qui n’a aucun robot présent.
J’ai mentionné à plusieurs reprises que Reeborg était un robot usagé ... Nous allons donc créer notre première instance d’un RobotUsage (sans accent aigu sur le e) et lui donner un nom familier! Ensuite, nous allons lui demander de faire un pas vers l’avant.
À votre tour !
Créez un robot et faites-le avancer d’un pas en utilisant le programme suivant:
reeborg = RobotUsage()
reeborg.avance()
Lorsque vous aurez terminé, essayez d’écrire un programme plus complexe, en utilisant d’autres instructions.
Important
Vous avez probablement remarqué que j’ai écrit le nom reeborg tout en lettres minuscules. Lorsqu’on écrit des programmes en utilisant Python (ainsi que plusieurs autres langages informatiques), on utilise souvent la convention de donner des noms tout en lettres minuscules aux instances des classes d’objets, et de réserver les noms débutant avec une majuscule pour les classes elles-mêmes. Donc ici, j’ai la classe d’objets RobotUsage et le nom d’une instance reeborg.
Cependant ... je ne suivrai pas toujours cette convention dans ce tutoriel; je suis trop habitué à écrire Reeborg avec un R majuscule.
Essayez ceci!
Sélectionnez le monde Vide, donc sans robots. Puis exécutez le code suivant:
reeborg = RobotUsage()
reeborg.avance()
erdna = RobotUsage()
erdna.tourne_a_gauche()
erdna.avance()
reeborg.avance()
Vous pouvez ajouter d’autres robots si vous le désirez!
Pour les programmeurs expérimentés
En plus de la notation pointée, il y a une autre façon d’obtenir la valeur d’un attribut ou d’une méthode qui appartient à un objet en Python. Supposons que j’ai la classe Chien comprenant ceci:
milou = Chien()
milou.taille = "petit"
milou.court() # action possible
Avec Python, la fonction getattr (de l’anglais get attribute) permet de faire ce qui suit:
la_taille = getattr(milou, "taille") # donne "petit" pour la_taille
action = getattr(milou, "court")
action() # équivalent de milou.court()
getattr peut être très utile dans certains contextes, mais probablement pas pour les tâches possibles du Monde de Reeborg.