Python 3

De TARENTINO
Aller à la navigationAller à la recherche
Array

test


(Opérateurs:Magenta)
(Méthodes:Green)
(Fonctions:Red)

Accueil
Connexion
Déconnexion
Aide
Admin

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.

  • Instanciation de la classe voiture
>>> ma_voiture=Voiture()
>>> ma_voiture.nom
'A déterminer'
>>> ma_voiture.roues
4

  • Instanciation de la classe VoitureSport
>>> ma_voiture_sport=VoitureSport()
>>> ma_voiture_sport.nom
'Ferrari'
>>> ma_voiture_sport.roues
4

Classes et Instances

  • Notion de classe (Class) d'objet est un type (type)
Class 01.png
  • 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.
 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.