Constructeur en Python

WBOY
WBOYavant
2023-09-02 16:29:202201parcourir

Constructeur en Python

En Python, chaque classe a un constructeur, qui est une méthode spéciale spécifiée à l'intérieur de la classe. Le constructeur/initialiseur sera appelé automatiquement lorsqu'un nouvel objet est créé pour la classe. Lorsqu'un objet est initialisé, le constructeur attribue des valeurs aux données membres de la classe.

Il n'est pas nécessaire de définir explicitement le constructeur. Mais pour créer un constructeur, nous devons suivre les règles suivantes -

  • Pour une classe, il n'est permis d'avoir qu'un seul constructeur.

  • Le nom du constructeur doit être __init__.

  • Les constructeurs doivent être définis à l'aide de propriétés d'instance (spécifiez simplement le mot-clé self comme premier argument).

  • Il ne peut renvoyer aucune valeur sauf Aucune.

Grammaire

class A(): 
   def __init__(self):
      pass

Exemple

Considérez l'exemple ci-dessous et comprenez comment fonctionne le constructeur.

class SampleClass():
  def __init__(self):
    print("it a sample class constructor")

# creating an object of the class 
A = SampleClass()

Sortie

it a sample class constructor

Dans le bloc ci-dessus, l'objet A est créé pour SampleClass() et pour cette instance, la méthode __init__(self) est automatiquement exécutée. De cette façon, il affiche l'instruction du constructeur.

Les constructeurs sont divisés en trois types.

  • Constructeur par défaut

  • Constructeur paramétré

  • Constructeur non paramétrique

Constructeur par défaut

Le constructeur par défaut n'est pas défini par l'utilisateur, Python crée lui-même un constructeur lors de la compilation du programme. Il n'effectue aucune tâche mais initialise l'objet.

Exemple

Python génère un constructeur vide sans code. Voir exemple ci-dessous.

class A():
    check_value = 1000
    # a method
    def value(self):
        print(self.check_value)

# creating an object of the class
obj = A()

# calling the instance method using the object
obj.value()

Sortie

1000

Vérifions le constructeur de la classe A à l'aide de la fonction dir() intégrée de Python.

dir(A)
Output:
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', 
'__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', 
'__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', 
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', 
'__subclasshook__', '__weakref__', 'check_value', 'value']
La fonction

python dir() renvoie une liste de toutes les propriétés et méthodes de l'objet spécifié. Dans la liste ci-dessus, nous pouvons voir que le constructeur par défaut __init__ est créé pour l'objet A.

Constructeur paramétré

Les constructeurs paramétrés acceptent un ou plusieurs paramètres ainsi que soi. Ceci est utile lorsque vous souhaitez créer un objet avec des valeurs de propriétés personnalisées. Les constructeurs paramétrés nous permettent de spécifier les valeurs des propriétés d'un objet lors de la création d'un objet.

Exemple

Voyons un exemple de classe avec un constructeur paramétré

class Family:
   members = 10
   def __init__(self, count):
      self.members = count
   
   def disply(self):
      print("Number of members is", self.members)  

joy_family = Family(25)
joy_family.disply()

Sortie

Number of members is 25

Ici, la série d'objets Joy est créée en utilisant une valeur personnalisée de 25 au lieu d'utiliser la valeur de propriété de membre par défaut de 10. Et la valeur est disponible pour cette instance car elle est affectée à la propriété self.members.

Constructeur non paramétrique

Les constructeurs non paramétriques n'acceptent aucun paramètre sauf self. C'est utile lorsque vous souhaitez manipuler la valeur d'une propriété d'instance.

Exemple

Voyons un exemple de constructeur non paramétrique.

class Player:
   def __init__(self):
      self.position = 0
   
   # Add a move() method with steps parameter     
   def move(self, steps):
      self.position = steps
      print(self.position)
   
   def result(self):
      print(self.position)

player1 = Player()
print('player1 results')
player1.move(2)
player1.result()

print('p2 results')
p2 = Player()
p2.result()

Sortie

player1 results
2
2
p2 results
0
L'objet

player1 manipule la propriété "position" en utilisant la méthode move(). Et l'objet p2 accède à la valeur par défaut de la propriété "position".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer