Python POO : classe, objet, héritage et constructeur avec exemple

POO dans Python

POO dans Python est une approche de programmation qui se concentre sur l'utilisation d'objets et de classes de la même manière que les autres langages de programmation généraux. Les objets peuvent être n’importe quelle entité du monde réel. Python permet aux développeurs de développer des applications en utilisant l'approche POO en mettant l'accent sur la réutilisabilité du code. Il est très simple de créer des classes et des objets dans Python.

Qu'est-ce qu'une classe ?

Une classe en Python est un regroupement logique de données et de fonctions. Il donne la liberté de créer des structures de données contenant un contenu arbitraire et donc facilement accessibles.

Par exemple, pour tout employé de banque souhaitant récupérer les coordonnées d'un client en ligne, il devra se rendre sur classe de client, où tous ses attributs tels que les détails de la transaction, les détails des retraits et des dépôts, l'encours de la dette, etc. seraient répertoriés.

Comment définir Python les classes

Pour définir la classe, vous devez prendre en compte les points suivants

Étape 1) In Python, les classes sont définies par le "Classe" mot-clé

class myClass():

Étape 2) A l'intérieur des classes, vous pouvez définir des fonctions ou des méthodes qui font partie de cette classe

def method1 (self):
   print "Guru99"
def method2 (self,someString): 
   print "Software Testing:" + someString
  • Ici, nous avons défini la méthode 1 qui imprime « Guru99 ».
  • Une autre méthode que nous avons définie est la méthode 2 qui imprime « Software Testing » + SomeString. SomeString est la variable fournie par la méthode appelante

Étape 3) Tout dans une classe est en retrait, tout comme le code de la fonction, de la boucle, de l'instruction if, etc. Tout ce qui n'est pas en retrait n'est pas dans la classe

Définir Python les classes

REMARQUE: À propos de l'utilisation de « soi » dans Python

  • L’auto-argument fait référence à l’objet lui-même. D’où l’utilisation du mot soi. Ainsi, dans cette méthode, self fera référence à l'instance spécifique de cet objet sur lequel l'opération est effectuée.
  • Soi est le nom préféré par convention par Pythons pour indiquer le premier paramètre des méthodes d'instance dans Python. Cela fait partie du Python syntaxe pour accéder aux membres des objets

Étape 4) Faire un objet de la classe

c = myClass()

Étape 5) Pour appeler une méthode dans une classe

c.method1()
    c.method2(" Testing is fun")
  • Notez que lorsque nous appelons la méthode1 ou la méthode2, nous n'avons pas besoin de fournir le mot-clé self. C'est automatiquement géré pour nous par le Python Durée.
  • Python le runtime transmettra la valeur « self » lorsque vous appelez une méthode d'instance dans une instance, que vous la fournissiez délibérément ou non
  • Vous devez juste vous soucier des arguments du non-soi

Étape 6) Voici le code complet

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  def method2(self,someString):    
      print("Software Testing:" + someString)
  
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()

Comment fonctionne l'héritage

L'héritage est une fonctionnalité utilisée dans la programmation orientée objet ; il s'agit de définir une nouvelle classe avec moins ou pas de modification d'une classe existante. La nouvelle classe s'appelle Classe dérivée et celui dont il hérite est appelé le base. Python prend en charge l'héritage; il prend également en charge héritages multiples. Une classe peut hériter des attributs et des méthodes de comportement d'une autre classe appelée sous-classe ou classe héritière.

Définir Python les classes

Python Syntaxe d'héritage

class DerivedClass(BaseClass):
    body_of_derived_class

Étape 1) Exécutez le code suivant

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  
class childClass(myClass):
  #def method1(self):
        #myClass.method1(self);
        #print ("childClass Method1")
        
  def method2(self):
        print("childClass method2")     
         
def main():           
  # exercise the class methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

Notez que dans childClass, la méthode1 n'est pas définie mais elle est dérivée du parent myClass. Le résultat est « Guru99 ».

Étape 2) Décommentez les lignes n°8 et 10. Exécutez le code

Maintenant, la méthode 1 est définie dans childClass et la sortie « childClass Method1 » est correctement affichée.

Étape 3) Décommentez la ligne n°9. Exécutez le code

Vous pouvez appeler une méthode de la classe parent en utilisant la syntaxe

ParentClassName.MethodName(self)

Dans notre cas, nous appelons myClass.method1(self) et Guru99 est imprimé comme prévu

Étape 4) Décommentez la ligne n°19. Exécutez le code.

La méthode 2 de la classe enfant est appelée et « childClass method2 » est imprimée comme prévu.

Python Constructeurs

Un constructeur est une fonction de classe qui instancie un objet avec des valeurs prédéfinies.

Il commence par un double trait de soulignement (_). C'est la méthode __init__()

Dans l'exemple ci-dessous, nous prenons le nom de l'utilisateur utilisant le constructeur.

class User:
    name = ""

    def __init__(self, name):
        self.name = name

    def sayHello(self):
        print("Welcome to Guru99, " + self.name)

User1 = User("Alex")
User1.sayHello()

La sortie sera :

Bienvenue sur Guru99, Alex

Python 2 Exemple

Les codes ci-dessus sont Python 3 exemples, si vous souhaitez courir Python 2 veuillez considérer le code suivant.

# How to define Python classes
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
  def method2(self,someString):    
      print "Software Testing:" + someString
      
   
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()


#How Inheritance works
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
      
class childClass(myClass):
  #def method1(self):
        #myClass.method1(self);
        #print "childClass Method1" 
        
  def method2(self):
        print "childClass method2"     
         
def main():           
  # exercise the class methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

Découvrez notre prochain tutoriel sur Polymorphisme dans Python

Résumé

« Classe » est un regroupement logique de fonctions et de données. Python La classe fournit toutes les fonctionnalités standard de la programmation orientée objet.

  • Mécanisme d'héritage de classe
  • Une classe dérivée qui remplace n'importe quelle méthode de sa classe de base
  • Une méthode peut appeler la méthode d'une classe de base du même nom
  • Python Les classes sont définies par mot-clé "classe" lui-même
  • A l'intérieur des classes, vous pouvez définir des fonctions ou des méthodes qui font partie de la classe
  • Tout dans une classe est indenté, tout comme le code de la fonction, de la boucle, de l'instruction if, etc.
  • L'argument de soi dans Python fait référence à l'objet lui-même. Soi est le nom préféré par convention par Pythons pour indiquer le premier paramètre des méthodes d'instance dans Python
  • Python le runtime transmettra automatiquement la valeur « self » lorsque vous appellerez une méthode d'instance dans une instance, que vous la fournissiez délibérément ou non
  • In Python, une classe peut hériter des attributs et des méthodes de comportement d'une autre classe appelée sous-classe ou classe héritière.