Heim  >  Artikel  >  Backend-Entwicklung  >  Konstruktor in Python

Konstruktor in Python

WBOY
WBOYnach vorne
2023-09-02 16:29:202171Durchsuche

Konstruktor in Python

In Python hat jede Klasse einen Konstruktor, bei dem es sich um eine spezielle Methode handelt, die innerhalb der Klasse angegeben wird. Der Konstruktor/Initialisierer wird automatisch aufgerufen, wenn ein neues Objekt für die Klasse erstellt wird. Wenn ein Objekt initialisiert wird, weist der Konstruktor den Datenelementen in der Klasse Werte zu.

Der Konstruktor muss nicht explizit definiert werden. Aber um einen Konstruktor zu erstellen, müssen wir die folgenden Regeln befolgen -

  • Für eine Klasse darf es nur einen Konstruktor geben.

  • Der Konstruktorname muss __init__ sein.

  • Konstruktoren müssen mithilfe von Instanzeigenschaften definiert werden (geben Sie einfach das Schlüsselwort self als erstes Argument an).

  • Es kann kein Wert außer None zurückgegeben werden.

Grammatik

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

Beispiel

Betrachten Sie das folgende Beispiel und verstehen Sie, wie der Konstruktor funktioniert.

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

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

Ausgabe

it a sample class constructor

Im obigen Block wird Objekt A für SampleClass() erstellt und für diese Instanz wird die Methode __init__(self) automatisch ausgeführt. Auf diese Weise wird die Konstruktoranweisung angezeigt.

Konstruktoren werden in drei Typen unterteilt.

  • Standardkonstruktor

  • Parameterisierter Konstruktor

  • Nichtparametrischer Konstruktor

Standardkonstruktor

Der Standardkonstruktor wird nicht vom Benutzer definiert, Python selbst erstellt während der Programmkompilierung einen Konstruktor. Es führt keine Aufgaben aus, sondern initialisiert das Objekt.

Beispiel

Python generiert einen leeren Konstruktor ohne Code darin. Siehe Beispiel unten.

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()

Ausgabe

1000

Lassen Sie uns die in Python integrierte dir()-Funktion verwenden, um den Konstruktor der Klasse A zu überprüfen.

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']
Die Funktion

python dir() gibt eine Liste aller Eigenschaften und Methoden des angegebenen Objekts zurück. In der obigen Liste können wir sehen, dass der Standardkonstruktor __init__ für Objekt A erstellt wird.

Parameterisierter Konstruktor

Parameterisierte Konstruktoren akzeptieren einen oder mehrere Parameter sowie self. Dies ist nützlich, wenn Sie ein Objekt mit benutzerdefinierten Eigenschaftswerten erstellen möchten. Mit parametrisierten Konstruktoren können wir beim Erstellen eines Objekts die Werte von Objekteigenschaften angeben.

Beispiel

Sehen wir uns ein Beispiel einer Klasse mit einem parametrisierten Konstruktor an

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()

Ausgabe

Number of members is 25

Hier wird die Objekt-Joy-Serie mit einem benutzerdefinierten Wert von 25 erstellt, anstatt den Standardwert der Mitgliedereigenschaft von 10 zu verwenden. Und der Wert steht dieser Instanz zur Verfügung, da er der Eigenschaft self.members zugewiesen ist.

Nichtparametrischer Konstruktor

Nicht parametrisierte Konstruktoren akzeptieren keine Parameter außer self. Dies ist nützlich, wenn Sie den Wert einer Instanzeigenschaft bearbeiten möchten.

Beispiel

Sehen wir uns ein Beispiel eines nichtparametrischen Konstruktors an.

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()

Ausgabe

player1 results
2
2
p2 results
0
Das

player1-Objekt manipuliert die Eigenschaft „position“ mithilfe der move()-Methode. Und das p2-Objekt greift auf den Standardwert der Eigenschaft „position“ zu.

Das obige ist der detaillierte Inhalt vonKonstruktor in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen