Konstruktor in Python

WBOY
Freigeben: 2023-09-02 16:29:20
nach vorne
2185 Leute haben es durchsucht

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
Nach dem Login kopieren

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()
Nach dem Login kopieren

Ausgabe

it a sample class constructor
Nach dem Login kopieren

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()
Nach dem Login kopieren

Ausgabe

1000
Nach dem Login kopieren

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']
Nach dem Login kopieren
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()
Nach dem Login kopieren

Ausgabe

Number of members is 25
Nach dem Login kopieren

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()
Nach dem Login kopieren

Ausgabe

player1 results
2
2
p2 results
0
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!