Alle, die Python gestartet haben, haben sich gefragt: Inhalte, die überall voller Inhalte sind.
Reorganisieren Sie sich.
・ Selbst ist optional └ Funktioniert auch wenn es nicht selbst ist
-Wenn Sie Variablen in der Klasse verwenden, verwenden Sie self. Variables. └ Wenn Sie x = 123 verwenden, wird "self.x"
・ Globale Variablen können so verwendet werden, wie sie in der Klasse sind
** ▼ Bestätigungsklasse **
class1
class class1:
def method1(self):
print("Ausgeführte Methode1")
x = class1()
x.method1()
#Ausgabe
#Ausgeführte Methode1
Kein Selbst
class class1:
def method1():
print("Ausgeführte Methode1")
x = class1()
x.method1()
#Ausgabe
# TypeError: method1() takes 0 positional arguments but 1 was given
** ■ Fehler ** method1() takes 0 positional arguments but 1 was given
Die in der Klasse definierte Methode "method1" akzeptiert kein Argument (0), sondern 1.
Selbst im ausgeführten Prozess ist das Innere von () leer und es wird kein Argument eingegeben. (Normalerweise Argument 0) x.method1()
Beispiel
x.method1 () → Argument 1
x.method1 ('A', 'B') → Argument 3
⇛ Sein Argument ist "Selbst"
Das Argument kann anders sein als das Selbst. Es ist üblich, sich selbst zu benutzen.
Wenn das Argument self durch "a" und "aiueo" ersetzt wird.
Andere Charaktere als Selbst ①
class class1:
def method1(a):
print("Ausgeführte Methode1")
x = class1()
x.method1()
#Ausgabe
#Ausgeführte Methode1
Andere Charaktere als Selbst ②
class class1:
def method1(AIUEO):
print("Ausgeführte Methode1")
x = class1()
x.method1()
#Ausgabe
#Ausgeführte Methode1
Beide laufen ohne Probleme.
Wenn Sie die definierte Methode aus der Klasse entfernen, wird das Argument natürlich nicht standardmäßig übergeben.
Außerhalb des Unterrichts
def method1():
print("Ausgeführte Methode1")
method1()
#Ausgabe
#Ausgeführte Methode1
Error
def method1():
print("Ausgeführte Methode1")
method1('A')
#Ausgabe
# TypeError: method1() takes 0 positional arguments but 1 was given
Fehler: method1 () akzeptiert 0 Positionsargumente, aber 1 wurde angegeben
Ein Fehler, dass es 0 Argumente gibt, aber 1 extra.
Da in der Klasse standardmäßig ein Argument festgelegt ist, muss beim Festlegen anderer Argumente mehr als üblich festgelegt werden. (Wird selbst + α)
Beim Setzen des Arguments
class class2:
def weather(self, day, sky):
print(day + 'Das Wetter ist' + sky + 'ist.')
x = class2()
x.weather('heute', 'Sonnig')
#Ausgabe
#Das Wetter ist heute sonnig.
Legen Sie drei Argumente für die Wettermethode in der Klasse fest: "Selbst", "Tag" und "Himmel".
Anders als ich selbst
class class2:
def weather(a, day, sky):
print(day + 'Das Wetter ist' + sky + 'ist.')
x = class2()
x.weather('heute', 'Sonnig')
#Ausgabe
#Das Wetter ist heute sonnig.
Der große Vorteil der Klasse besteht darin, dass Sie Funktionen und Variablen festlegen können, die nur innerhalb der Klasse gültig sind. (Nicht global)
Sie müssen es mit "self" kombinieren, um die Variablen in der Klasse zu verwenden.
Um die in der Klasse in der Methode definierte Variable "x = 123" aufzurufen, muss sie "self.x" sein.
class3
class class3:
x = 123
def method1(self):
print(self.x)
cls = class3()
cls.method1()
#Ausgabe
# 123
Ein Fehler tritt auf, wenn in "self.x" kein Selbst vorhanden ist.
nur x
class class3:
x = 123
def method1(self):
print(x)
cls = class3()
cls.method1()
#Ausgabe
# NameError: name 'x' is not defined
Fehler: Name 'x' ist nicht definiert "X = 123" in der Klasse ist nicht "x".
Self ist nicht erforderlich, wenn Variablen verwendet werden, die außerhalb der Klasse definiert sind.
Verwenden Sie globale Variablen
x = 123
class class3:
def method1(self):
print(x)
cls = class3()
cls.method1()
#Ausgabe
# 123
Durch die Verwendung von self können Sie klar unterscheiden, ob es sich um eine globale Variable oder eine Variable in einer Klasse handelt.
Anders als ich selbst
class class3:
x = 123
def method1(AIUEO):
print(AIUEO.x)
cls = class3()
cls.method1()
#Ausgabe
# 123
Ich habe mich gefragt, was Selbst ist, aber ich denke, es ist bequem und notwendig zu wissen, wie man es benutzt.
Recommended Posts