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.
class A(): def __init__(self): pass
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()
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
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.
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()
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']
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.
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.
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()
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.
Nicht parametrisierte Konstruktoren akzeptieren keine Parameter außer self. Dies ist nützlich, wenn Sie den Wert einer Instanzeigenschaft bearbeiten möchten.
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()
player1 results 2 2 p2 results 0
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!