Self repräsentiert die Instanz der Klasse. Durch die Verwendung des Selbst können wir auf die Attribute und Methoden der Klasse zugreifen Python . Es bindet die Attribute mit den angegebenen Argumenten. Der Grund, warum Sie self verwenden müssen. liegt daran, dass Python nicht die @-Syntax verwendet, um auf Instanzattribute zu verweisen. Python hat beschlossen, Methoden so auszuführen, dass die Instanz, zu der die Methode gehört, automatisch übergeben, aber nicht automatisch empfangen wird: Der erste Parameter von Methoden ist die Instanz, auf der die Methode aufgerufen wird.
Wozu dient self in Python?
Bei der Arbeit mit Klassen in Python bezieht sich der Begriff „self“ auf die Instanz der Klasse, die gerade verwendet wird. Es ist üblich, self als ersten Parameter in Instanzmethoden einer Klasse zu verwenden. Immer wenn Sie eine Methode eines aus a erstellten Objekts aufrufen Klasse , wird das Objekt automatisch als erstes Argument mit dem Parameter self übergeben. Dadurch können Sie die Eigenschaften des Objekts ändern und Aufgaben ausführen, die für diese bestimmte Instanz spezifisch sind.
Python3
Konvertieren Sie int in einen String Java
class> mynumber:> >def> __init__(>self>, value):> >self>.value>=> value> > >def> print_value(>self>):> >print>(>self>.value)> obj1>=> mynumber(>17>)> obj1.print_value()> |
>
>
Ausgabe:
17>
Selbstkonstruktor der Python-Klasse
Bei der Arbeit mit Klassen ist es wichtig zu verstehen, dass in Python ein Klassenkonstruktor eine spezielle Methode mit dem Namen ist __heiß__ das aufgerufen wird, wenn Sie eine Instanz (ein Objekt) einer Klasse erstellen. Diese Methode wird verwendet, um die Attribute des Objekts zu initialisieren. Beachten Sie, dass sich der self-Parameter im Konstruktor auf die zu erstellende Instanz bezieht und Ihnen den Zugriff und das Festlegen ihrer Attribute ermöglicht. Wenn Sie diese Richtlinien befolgen, können Sie leistungsstarke und effiziente Klassen in Python erstellen.
Python3
class> Subject:> >def> __init__(>self>, attr1, attr2):> >self>.attr1>=> attr1> >self>.attr2>=> attr2> obj>=> Subject(>'Maths'>,>'Science'>)> print>(obj.attr1)> print>(obj.attr2)> |
>
>
Ausgabe:
Maths Science>
Ist self in Python ein Schlüsselwort?
NEIN, „Selbst“ ist kein Stichwort in Python. Self>ist lediglich ein Parametername, der in Instanzmethoden verwendet wird, um auf die Instanz selbst zu verweisen.
Deutlicher ausgedrückt kann man sagen, dass das SELBST die folgenden Eigenschaften hat:
Websites wie bedpage
Selbst: Zeiger auf das aktuelle Objekt
Das Selbst zeigt immer auf das aktuelle Objekt. Wenn Sie eine Instanz einer Klasse erstellen, erstellen Sie im Wesentlichen ein Objekt mit einem eigenen Satz von Attributen und Methoden.
Python3
class> check:> >def> __init__(>self>):> >print>(>'Address of self = '>,>id>(>self>))> obj>=> check()> print>(>'Address of class object = '>,>id>(obj))> |
>
>
Ausgabe:
Address of self = 140273244381008 Address of class object = 140273244381008>
Beispiel: Klasse mit Attributen und Methoden erstellen
Dieser Code definiert eine Python-Klassecar>Darstellung von Autos mit den Attributen „Modell“ und „Farbe“. Der__init__>Der Konstruktor initialisiert diese Attribute für jede Instanz. Dershow>Die Methode zeigt Modell und Farbe an, während direkter Attributzugriff und Methodenaufrufe den instanzspezifischen Datenabruf demonstrieren.
Python3
class> car():> > ># init method or constructor> >def> __init__(>self>, model, color):> >self>.model>=> model> >self>.color>=> color> > >def> show(>self>):> >print>(>'Model is'>,>self>.model )> >print>(>'color is'>,>self>.color )> > # both objects have different self which contain their attributes> audi>=> car(>'audi a4'>,>'blue'>)> ferrari>=> car(>'ferrari 488'>,>'green'>)> audi.show()># same output as car.show(audi)> ferrari.show()># same output as car.show(ferrari)> print>(>'Model for audi is '>,audi.model)> print>(>'Colour for ferrari is '>,ferrari.color)> |
>
>
Ausgabe:
Model is audi a4 color is blue Model is ferrari 488 color is green Model for audi is audi a4 Colour for ferrari is green>
Selbst in Konstruktoren und Methoden
Self ist das erste Argument, das übergeben wird Konstrukteur und Instance Method.Self muss als erster Parameter für die Instance-Methode und den Konstruktor bereitgestellt werden. Wenn Sie es nicht angeben, führt dies zu einem Fehler.
Python3
# Self is always required as the first argument> class> check:> >def> __init__():> >print>(>'This is Constructor'>)> object> => check()> print>(>'Worked fine'>)> # Following Error is produced if Self is not passed as an argument> Traceback (most recent call last):> >File> '/home/c736b5fad311dd1eb3cd2e280260e7dd.py'>, line>6>,>in> > >object> => check()> TypeError: __init__() takes>0> positional arguments but>1> was given> |
>
unordered_map c++
>
Selbst: Konvention, kein Schlüsselwort
Das Selbst ist eine Konvention und keine Python-Schlüsselwort . Self ist ein Parameter in der Instanzmethode und der Benutzer kann stattdessen einen anderen Parameternamen verwenden. Es ist jedoch ratsam, self zu verwenden, da dies die Lesbarkeit des Codes erhöht und außerdem eine gute Programmierpraxis darstellt.
Python3
class> this_is_class:> >def> __init__(in_place_of_self):> >print>(>'we have used another '> >'parameter name in place of self'>)> > object> => this_is_class()> |
>
>
Ausgabe:
we have used another parameter name in place of self>