Einführung
Wenn Sie Python lernen, sind Sie sicher schon auf den Begriff „self“ gestoßen. Dieses kleine Wort spielt eine große Rolle bei der Funktionsweise von Python-Klassen. Wenn Sie eine Methode innerhalb einer Klasse erstellen, verwenden Sie „self“, um auf die Instanz zu verweisen, die die Methode aufruft. Dies hilft Ihnen, auf die Instanzvariablen und -methoden innerhalb der Klasse zuzugreifen und diese zu ändern. In diesem Artikel werden wir uns eingehend damit befassen, was „self“ bedeutet, warum es wichtig ist und wie es in der Python-Programmierung verwendet wird.
Überblick
- Verstehen Sie die Bedeutung und Wichtigkeit von „self“ im Python-Kurs.
- Erfahren Sie, wie Sie „self“ in Python verwenden.
- Finden Sie heraus, was passiert, wenn Sie in Python nicht „self“ verwenden.
Was bedeutet „Selbst“ in Python?
In Python ist „self“ ein Verweis auf die Instanz der Klasse. Python verwendet den Begriff „self“, um auf die Instanz zu verweisen, die die Klasse aufruft. In einer Klasse wird es verwendet, um die Instanzvariablen und -methoden aufzurufen. Im Folgenden finden Sie eine Erklärung des Begriffs „self“:
- Instanzreferenz: „self“ ist ein herkömmlicher Title für den ersten Parameter von Methoden in einer Klasse. Dieser Begriff steht auch für das Klassenobjekt, das diese Methode aufruft.
- Instanzvariablen: Wird verwendet, um innerhalb von Klassenmethoden auf Instanzvariablen und Methoden zuzugreifen.
- Methodendefinition: „self“ ist der erste Parameter einer Instanzmethode in Python. Daher hat jede neue benutzerdefinierte Methode in einer Klasse das Argument „self“, um die Instanz anzugeben, auf die sie sich bezieht.
Warum ist das „Selbst“ wichtig?
Versuchen wir nun, die Bedeutung von „self“ in Python zu verstehen.
1. Zugriff auf Instanzvariablen
Mit „Self“ können Sie auf Instanzvariablen innerhalb von Klassenmethoden zugreifen und diese ändern.
Beispiel :
class Particular person:
def __init__(self, title, age):
self.title = title # self.title is an occasion variable
self.age = age # self.age is an occasion variable
def greet(self):
print(f"Hi there, my title is {self.title} and I'm {self.age} years previous.")
2. Zugang zu anderen Methoden
„Self“ ermöglicht es Methoden innerhalb der gleichen Klasse, andere Methoden aufzurufen.
Beispiel :
class Circle:
def __init__(self, radius):
self.radius = radius
def space(self):
return 3.14 * self.radius * self.radius
def perimeter(self):
return 2 * 3.14 * self.radius
def describe(self):
print(f"Circle with radius {self.radius}, space: {self.space()}, perimeter: {self.perimeter()}")
3. Unterscheidung zwischen Klassen- und Instanzvariablen
Die Verwendung von „self“ hilft dabei, innerhalb von Methoden zwischen Instanzvariablen und lokalen Variablen zu unterscheiden.
class Instance:
def __init__(self, worth):
self.worth = worth # occasion variable
def set_value(self, worth):
self.worth = worth # right here self.worth is the occasion variable, and worth is the native variable
Kann anstelle von „Selbst“ ein anderes Wort verwendet werden?
Tatsächlich kann `self` durch jeden gültigen Variablennamen ersetzt werden. Dies ist jedoch riskant, da `self` eine weithin anerkannte Konvention ist. Es wird dringend davon abgeraten, wenn Personen auf einen neuen Namen stoßen, da sie verwirrt und desorientiert sein könnten, was ein potenzielles Drawback darstellen könnte. Außerdem könnte die Verwendung eines anderen Namens andere Programmierer verwirren, die Ihren Code lesen.
class Particular person:
def __init__(myself, title, age):
myself.title = title
myself.age = age
def greet(myself):
print(f"Hi there, my title is {myself.title} and I'm {myself.age} years previous.")
In diesem Beispiel wird „myself“ statt „self“ verwendet und das funktioniert einwandfrei, wird aber nicht empfohlen.
Was passiert, wenn „Self“ nicht verwendet wird?
Wenn Sie `self` (oder einen entsprechenden ersten Parameter) nicht in Ihre Methodendefinitionen aufnehmen, treten beim Versuch, diese Methoden aufzurufen, Fehler auf. Dies liegt daran, dass Python die Instanz automatisch als erstes Argument an Instanzmethoden übergibt, und wenn Ihre Methodensignatur dies nicht erwartet, führt dies zu einem `TypeError`.
class Particular person:
def __init__(title, age): # Incorrect: lacking 'self'
title = title
age = age
def greet(): # Incorrect: lacking 'self'
print(f"Hi there, my title is {title} and I'm {age} years previous.")
# This can elevate an error whenever you attempt to create an occasion
p = Particular person("Alice", 30)
Fehler:
TypeError: __init__() verwendet 2 Positionsargumente, aber es wurden 3 angegeben.
Abschluss
`Self` ist für den Zugriff auf Instanzvariablen und Methoden innerhalb einer Klasse unerlässlich. Es ermöglicht objektorientierte Programmierpraktiken und stellt sicher, dass Methoden auf den richtigen Instanzen ausgeführt werden. Dies gibt Ihnen die Möglichkeit, komplexen, wiederverwendbaren und modularen Code zu erstellen. Obwohl Sie technisch gesehen einen anderen Namen anstelle von `self` verwenden können, wird dies aufgrund von Konventionen und der Lesbarkeit nicht empfohlen. Denken Sie auch daran, dass die Nichtverwendung von `self`, wo erforderlich, zu Fehlern führt und den reibungslosen Betrieb Ihres Codes stört. Nutzen Sie `self` und Sie werden feststellen, dass Ihre Python-Programmierung intuitiver und effektiver wird.
Häufig gestellte Fragen
A. In Python ist „self“ ein Verweis auf die Instanz der Klasse. Python verwendet den Begriff „self“, um sich auf die Instanz zu beziehen, die die Klasse aufruft. Und in einer Klasse wird es verwendet, um die Instanzvariablen und -methoden aufzurufen.
A. In Python, ‚self
‚ bezieht sich auf die Instanz der Klasse und wird verwendet, um auf ihre Attribute und Methoden zuzugreifen. In der Zwischenzeit ist die __init__
Methode ist eine spezielle Konstruktormethode, die die Attribute des Objekts initialisiert, wenn eine neue Instanz der Klasse erstellt wird.
A. Der Schlüssel „self“ wird in Python verwendet, um die Instanz einer Klasse darzustellen. Mit diesem Schlüsselwort können Sie auf die Attribute und Methoden einer bestimmten Python-Klasse zugreifen.