Tous ceux qui ont commencé python se sont demandé, Un contenu plein de contenu partout.
Réorganisez-vous.
・ Self est facultatif └ Fonctionne même si ce n'est pas soi
-Lors de l'utilisation de variables dans la classe, utilisez self. Variables. └ Si vous utilisez x = 123, "self.x"
・ Les variables globales peuvent être utilisées telles quelles dans la classe
** ▼ Classe de confirmation **
class1
class class1:
def method1(self):
print("Méthode exécutée1")
x = class1()
x.method1()
#production
#Méthode exécutée1
Pas de moi
class class1:
def method1():
print("Méthode exécutée1")
x = class1()
x.method1()
#production
# TypeError: method1() takes 0 positional arguments but 1 was given
** ■ Erreur ** method1() takes 0 positional arguments but 1 was given
La méthode "méthode1" définie dans la classe ne prend pas d'argument (0), mais 1 est donné.
Même dans le processus exécuté, l'intérieur de () est vide et aucun argument n'est entré. (Normalement argument 0) x.method1()
Exemple
x.method1 () → Argument 1
x.method1 ('A', 'B') → Argument 3
⇛ Son argument est "soi"
L'argument peut être autre que soi. Il est d'usage de se servir de soi.
Lorsque l'argument self est remplacé par "a" et "aiueo".
Personnages autres que soi ①
class class1:
def method1(a):
print("Méthode exécutée1")
x = class1()
x.method1()
#production
#Méthode exécutée1
Personnages autres que soi ②
class class1:
def method1(AIUEO):
print("Méthode exécutée1")
x = class1()
x.method1()
#production
#Méthode exécutée1
Les deux fonctionnent sans problèmes.
Si vous sortez la méthode définie de la classe, bien sûr, l'argument n'est pas passé par défaut.
Hors classe
def method1():
print("Méthode exécutée1")
method1()
#production
#Méthode exécutée1
Erreur
def method1():
print("Méthode exécutée1")
method1('A')
#production
# TypeError: method1() takes 0 positional arguments but 1 was given
Erreur: method1 () prend 0 argument de position mais 1 a été donné
Une erreur qu'il y a 0 argument mais 1 supplémentaire.
Puisqu'un argument est défini par défaut dans la classe, il est nécessaire d'en définir un de plus que d'habitude lors de la définition d'autres arguments. (Devient soi + α)
Lors de la définition de l'argument
class class2:
def weather(self, day, sky):
print(day + 'Le temps est' + sky + 'est.')
x = class2()
x.weather('aujourd'hui', 'Ensoleillé')
#production
#Le temps est ensoleillé aujourd'hui.
Définissez trois arguments de la méthode météo dans la classe: "self", "day" et "sky".
Autre que soi
class class2:
def weather(a, day, sky):
print(day + 'Le temps est' + sky + 'est.')
x = class2()
x.weather('aujourd'hui', 'Ensoleillé')
#production
#Le temps est ensoleillé aujourd'hui.
Le gros avantage de la classe est que vous pouvez définir des fonctions et des variables qui ne sont valides que dans la classe. (Pas global)
Vous devez le combiner avec "self" pour utiliser les variables de la classe.
Pour appeler la variable "x = 123" définie dans la classe de la méthode, elle doit être "self.x".
class3
class class3:
x = 123
def method1(self):
print(self.x)
cls = class3()
cls.method1()
#production
# 123
Une erreur se produira s'il n'y a pas de self dans "self.x".
x seulement
class class3:
x = 123
def method1(self):
print(x)
cls = class3()
cls.method1()
#production
# NameError: name 'x' is not defined
Erreur: le nom'x 'n'est pas défini "X = 123" dans la classe n'est pas "x".
Self n'est pas requis lors de l'utilisation de variables définies en dehors de la classe.
Utiliser des variables globales
x = 123
class class3:
def method1(self):
print(x)
cls = class3()
cls.method1()
#production
# 123
En utilisant self, vous pouvez clairement distinguer s'il s'agit d'une variable globale ou d'une variable dans une classe.
Autre que soi
class class3:
x = 123
def method1(AIUEO):
print(AIUEO.x)
cls = class3()
cls.method1()
#production
# 123
Je me demandais ce qu'est le moi, mais je pense qu'il est pratique et nécessaire de savoir comment l'utiliser.
Recommended Posts