Définit un bouton cliquable
Dans ce tutoriel, vous apprendrez la programmation orientée objet en Python, notamment les concepts essentiels tels que les objets, les classes, les attributs, les méthodes, les héritages, les méthodes de remplacement, etc.
Tout en Python est un objet. Un objet a un état et des comportements. Pour créer un objet, vous définissez d'abord une classe. Puis, à partir de cette classe, vous pouvez créer un ou plusieurs objets. Les objets sont des instances d'une classe.
class Personne : passComme vous le costatez, nous avons définit la classe de la même maniére qu'une fonction.
class Personne : def __init__(self, name, age) : self.name = nom self.age = ageLorsque vous créez un objet Personne, Python appelle automatiquement la méthode __init__ pour initialiser les attributs de l'instance. Dans la méthode __init__, le mot-clé self est l'instance de la classe Personne.
class Personne : def __init__(self, nom, age) : self.name = nom self.age = age person = Personne('Anne', 25) print(f"Salut, {person.name} tu a {person.age} ans.")
classe Personne : def __init__(self, nom, age) : self.name = nom self.age = age def saluer(self) : return f"Salut {self.name} vous avez {self.age} ans. "Pour appeler une méthode d'instance, vous utilisez également la notation par points.
class Personne : def __init__(self, nom, age) : self.name = nom self.age = age def saluer(self) : return f"Salut {self.name} vous avez {self.age} ans." person = Personne('Anne', 25) print(person.saluer())Sortie :
classe Personne : compteur = 0 def __init__(self, nom, age) : self.name = nom self.age = age def saluer(self) : return f"Salut {self.name} vous avez {self.age} ans."Vous pouvez accéder à l'attribut compteur de la classe Personne :
person = Personne('Anne',25) person.compteurPour rendre la variable compteur plus utile, vous pouvez augmenter sa valeur de un une fois qu'un objet est créé. Pour ce faire, vous augmentez l'attribut de classe compteur dans la méthode __init__ :
class Personne : compteur = 0 def __init__(self, nom, age) : self.name = nom self.age = age Personne.compteur += 1 def saluer(self) : return f"Salut, {self.name} vous avez {self.age} ans."L'exemple suivant crée deux instances de la classe Personne et affiche la valeur du compteur :
class Personne : compteur = 0 def __init__(self, nom, age) : self.name = nom self.age = age Personne.compteur += 1 def saluer(self) : return f"Salut, {self.name} vous avez {self.age} ans." p1 = Personne('Anne', 25) p2 = Personne('Jane', 22) print(f"{Personne.compteur} instences ont été crées")Résultat :
classe Personne : compteur = 0 def __init__(self, name, age) : self.name = nom self.age = age Person.compteur += 1 def saluer(self) : return f"Salut, {self.name} vous avez {self.age} ans." @classmethod def create_anonymous(cls) : return Personne('Anonyme', 22)L'exemple suivant montre comment appeler la méthode de classe create_anonymous() :
class Personne : compteur = 0 def __init__(self, nom, age) : self.name = nom self.age = age Personne.compteur += 1 def saluer(self) : return f"Salut, {self.name} vous avez {self.age} ans." @classmethod def create_anonymous(cls) : return Personne('Anonyme', 22) anonymous = Personne.create_anonymous() print(anonymous.name) print(anonymous.age)
class Temperature_convertisseur: @staticmethod def celsius_en_fahrenheit(c): return 9 * c / 5 + 32 @staticmethod def fahrenheit_en_celsius(f): return 5 * (f - 32) / 9Pour appeler une méthode statique, vous utilisez la syntaxe :
f = Temperature_convertisseur.celsius_en_fahrenheit(30) print(f)
Remarquez que Python ne passe pas implicitement une instance (self) ainsi qu'une classe (cls) comme premier argument d'une méthode statique.
class Personne : def __init__(self, nom, age) : self.name = nom self.age = age def saluer(self) : return f"Salut, {self.name} vous avez {self.age} ans." class Employe(Personne): def __init__(self, nom, age, job_title) : super().__init__(nom, age) self.job_title = job_title person = Personne('Anne', 25) print(person.saluer()) employe=Employe('Anne', 25, 'développeur python') print(employe.saluer())A l'intérieur de la classe Employe, la méthode __init__ appelle la méthode __init__method de la classe Personne pour initialiser les attributs nom et age. La méthode super() permet à une classe enfant d'accéder à une méthode de la classe parent.
classe Employe( Personne) : def __init__(self, name, age, job_title) : super().__init__(nom, âge) self.job_title = job_title def saluer(self) : return super().saluer() + f" Je suis un {self.job_title}."La méthode saluer() de l'employé est également appelée la méthode saluer() de la classe Personne.
employee = Employee('John', 25, 'développeur Python') print(employe.saluer())Dans ce tutoriel, vous avez appris un bref aperçu de la programmation orientée objet en Python.