Programmation Python/Programmation orienté objet

Un livre de Wikilivres.
Aller à : navigation, rechercher
Programmation Python

Python-logo-notext.svg

Partie 1 : Introduction
Partie 2 : Le langage
Partie 3 : Les bibliothèques
Annexe
Modifier ce modèle

La programmation orienté objet[modifier | modifier le wikicode]

Le concept objet[modifier | modifier le wikicode]

Dans les environnements de développement informatique, il a fallu attendre assez longtemps pour voir émerger le concept de l'objet. Son apparition a permis la création de systèmes beaucoup plus complexes mais aussi très empreints de mimétisme. En effet, dans notre monde réel, nous sommes tous entourés d'objets qui ont très souvent deux critères d'appréciation.

Le critère descriptif[modifier | modifier le wikicode]

Ce premier est universel, il contient toutes les caractéristiques qui décrivent l'objet. Nous prendrons comme exemple un dé, si nous avions à le décrire, nous dirions qu'il possède 6 faces avec un chiffre allant de 1 à 6 sur chacune d'elles, que la somme de deux valeurs étant sur des faces opposées vaut 7, que chaque chiffre entre un et six y est repris une et une seule fois, qu'il est (souvent) de couleur rouge et de petite taille. Il serait possible de le décrire plus précisément, mais en réalité, indiquer qu'il est fait de bois, que les nombres sont représentés par une quantité de point qui leur est égal, qu'il dispose de coin arrondi... n'aurait pas été plus éloquent.

Le critère d'interaction[modifier | modifier le wikicode]

Le deuxième critère est celui d'interaction, il indique l'utilité de l'objet, les possibilités qu'il vous offre. Pour le dé nous pourrions indiquer que celui-ci peut rouler, mais ce n'est pas son rôle. De même, dans certaines circonstances, celui-ci peut vous servir de cale, mais ici encore, nous nous éloignons du sujet. Objectivement, le dé a pour rôle de donner un nombre compris entre son minimum et son maximum (inclus) au hasard. D'ailleurs, on peut ajouter que cela arrive après l'avoir lancé.

l'héritage et l'implémentation[modifier | modifier le wikicode]

Ici, nous avons décrit un objet, et il nous suffit de faire de même en informatique. Mais nous pourrions approfondir la description en indiquant aussi que le dé est en fait dérivé d'un objet de base : le cube. Ainsi nous pourrions dire que le dé :

  • est un cube.
  • est de couleur rouge.
  • peut être lancé pour renvoyer un nombre compris entre 1 et 6 (le nombre de face qui le compose).

puis expliquer que le cube :

  • est un volume géométrique à trois dimensions.
  • est constitué de 6 carrés.

puis bien sûr qu'un carré :

  • est une figure géométrique à deux dimensions.


Et nous pourrions continuer précisant le terme dimension mais dans notre cas ce n'est pas utile. Nous pouvons ainsi établir le schémas suivant : le dé hérite des caractéristiques du cube (c'est un cube). Mais on ne peut pas dire que le cube hérite des caractéristiques du carré. En effet, on indique bien qu'il est constitué de mais pas qu'il est et c'est la toute la différence, vous êtes constitué de deux bras musclés mais vous n'êtes pas deux bras musclés (sauf si vous êtes déménageur... c'est une blague bien entendu, les déménageurs sont suffisamment allègre pour ne pas lancer un avis de recherche sur ma tête ) ! Nous dirons donc que :

  • l'objet cube implémente l'objet surface carré
  • l'objet hérite de l'objet cube

Classes et objets[modifier | modifier le wikicode]

Exemple de classe
class MaClasse:
	# définir ici les méthodes

Constructeur, destructeur[modifier | modifier le wikicode]

Classe avec constructeur
class Complexe:
	def __init__(self, r, i):
		self.reel = r
		self.img = i

Encapsulation des données[modifier | modifier le wikicode]

Héritage[modifier | modifier le wikicode]

Classe héritant d'une autre
class Triangle(FormeGeometrique):
	def __init__(self):
		# Création d'un triangle

Polymorphisme[modifier | modifier le wikicode]