Python 3
De TARENTINO
Révision datée du 12 mars 2020 à 14:21 par Ange (discussion | contributions) (→L'héritage de classe)
Array
Python
Python 1
Python 2
Python Perfectionnement
Programmation objet
Les Objets
- Pour pouvoir créer des objets dans un programme, il faut avant tout avoir défini une classe.
- Il s'agit en quelque sorte d'un plan , qui décrit les caractéristiques de l'objet.
- En particulier, une classe définit les deux éléments constitutifs des objets que sont ses attributs et fonctionnalités.
- Un objet est une instance d'une classe, qui possède son propre état, défini par les valeurs de ses différents attributs.
- On peut créer autant d'objets que l'on désire avec une classe.
Les attributs
- Les attributs de classe permettent de stocker des informations au niveau de la classe. Elle sont similaires aux variables.
- Il est possible à tout moment de créer un attribut pour l'objet.
Les méthodes
- Les méthodes sont des fonctions définies dans une classe.
1 # coding: utf-8
2 class Voiture:
3 def __init__(self):
4 self.nom = "Ferrari"
5 def donne_moi_le_modele(self):
6 return "250"
>>> ma_voiture=Voiture() >>> ma_voiture.donne_moi_le_modele() '250'
Les propriétés
- Il est de préférable de passer par des propriétés pour changer les valeurs des attributs.
- Il existe une convention pour changer la valeur d'un attribut, de passer:
- par des getter (ou accesseur en francais)
- des setter ( mutateurs )
1 class Voiture(object):
2 def __init__(self):
3 self._roues=4
4 def _get_roues(self):
5 print("Récupération du nombre de roues")
6 return self._roues
7 def _set_roues(self, v):
8 print("Changement du nombre de roues")
9 self._roues = v
10 roues=property(_get_roues, _set_roues)
>>> ma_voiture=Voiture() >>> ma_voiture.roues=5 Changement du nombre de roues >>> ma_voiture.roues Récupération du nombre de roues 5
Les décorateurs
1 class Voiture(object):
2 def __init__(self):
3 self._roues=4
4 @property
5 def _get_roues(self):
6 print "Récupération du nombre de roues"
7 return self._roues
8 @roues.setter
9 def _set_roues(self, v):
10 print "Changement du nombre de roues"
11 self._roues = v
12 roues=property(_get_roues, _set_roues)
L'héritage de classe
- Permet de créer de nouvelles classes mais avec une base existante.
1 class '''Voiture''':
2 roues = 4
3 moteur = 1
4 def __init__(self):
5 self.nom = "A déterminer"
6 class '''VoitureSport'''(Voiture):
7 def __init__(self):
8 self.nom = "Ferrari"
- On a indiqué que VoitureSport a hérité de classe Voiture, elle récupère toutes ses méthodes et ses attributs.
Classes et Instances
- Notion de classe (Class) d'objet est un type (type)
- Elle comprend 2 parties
- Attribut
- Méthode
- Une classe regroupe des fonctions et des attributs qui définissent un objet.
- On appelle par ailleurs les fonctions d'une classe des " méthodes ".
- Notion d'objet, d'instanciation et de constructeur
- Une instance d'objet est un objet concret.
- La création d'un objet est une instanciation.
- La méthode qui la réalise est le constructeur.
- La méthode __init__() est appelée lors de la création d'un objet.
- self.attribut_1 est une manière de stocker une information dans la classe. On parle d'attribut de classe. Dans notre cas, on stocke le nom dans l'attribut attribut_1.
- Une instance d'objet est un objet concret.
1 '''Définission d'une classe'''
2 >>> class X:
3 def __init__(self,val):
4 self.attribut_1=val
5 def methode_1(self):
6 return self.attribut_1
7 '''Instanciation'''
8 >>> instance_1=X(3)
9 '''Exécution d'une méthode'''
10 >>> print( instance_1.methode_1())
=> 3
Affectation par références
Exemple:
laVoitureDeMaFemme = maVoiture
- Ici, je crée une nouvelle référence à un seul et même objet (moi et mon épouse n'avons qu'une voiture). Ce n'est pas une instanciation ! Si je repeins ma voiture en vert la voiture de ma femme sera donc verte.
1 >>> class Personne:
2 ... def __init__(self, age ):
3 ... self.age = age
4 ... def vieillir(self):
5 ... self.age += 1
6 ...
7 >>> docteurJekyll = Personne(40)
8 >>> misterHyde = docteurJekyll
9 >>> docteurJekyll.vieillir()
10 >>> print( misterHyde.age )
=> 41
Variables et méthodes de classe et d’instance
- Variables et méthodes d’instance
- Chaque attribut est propre à sa classe, c'est une variable d’instance.
- Une méthode qui reçoit en paramètre l’adresse de l’instance via la référence « self » est dite méthode d’instance.
- Variables et méthodes de classe
- Une variable commune à toutes les instances, par exemple le nombre de voitures est appelée variable de classe.
- Une méthode qui ne reçoit pas en paramètre la référence « self » ne peut pas manipuler les variables d’instances. Elle a accès par contre aux variables de classe.
