Maison > développement back-end > Tutoriel Python > Parlons de Self en Python, qui est-ce ?

Parlons de Self en Python, qui est-ce ?

王林
Libérer: 2023-05-15 08:01:05
avant
993 Les gens l'ont consulté

Parlons de Self en Python, qui est-ce ?

Quand tout le monde apprend Python orienté objet, il sera toujours confronté à une existence difficile à comprendre : soi-même.

Qui est ce self ? Pourquoi chaque méthode d'instance de classe a-t-elle un paramètre self ? Quel rôle joue-t-elle ?

"Tirons d'abord la conclusion : une fois la classe instanciée, self représente l'instance (l'objet) elle-même. "

La façon la plus simple de se comprendre est de se considérer comme "la carte d'identité de l'instance (objet)."

Les classes Python ne peuvent pas être utilisées directement. Ce n'est qu'en créant des instances (objets) qu'elles peuvent fonctionner, chaque instance (. object) est unique et peut appeler des méthodes et des propriétés de la classe. Les classes sont comme la possession de l'âme, permettant aux instances (objets) d'avoir leurs propres fonctions (auto).

Parlons de Self en Python, qui est-ce ?

Les débutants découvriront qu'il existe un paramètre fixe self dans la méthode de classe (méthode constructeur et méthode d'instance). En fait, ce paramètre représente l'instance (objet) lui-même, tout comme une carte d'identité. Utilisez la carte d'identité pour appeler la méthode de classe.

Parlons de Self en Python, qui est-ce ?

Analogie avec les êtres humains, les êtres humains sont une classe Python, chaque personne représente une instance (objet) et la carte d'identité de chaque personne se représente en Python. Tout le monde peut utiliser sa carte d'identité pour aller à l'université ou passer l'université. train à grande vitesse , Séjourner dans un hôtel... (méthode) et les instances (objets) en Python peuvent également appeler des méthodes de classe avec self.

Parlons de Self en Python, qui est-ce ?

Ce qui précède utilise une analogie pour expliquer la signification de self. En dernière analyse, self représente l'instance elle-même. "Lorsqu'une instance (objet) appelle une méthode de classe, l'objet utilisera sa propre référence comme première. Les paramètres sont automatiquement transmis à la méthode, et le premier paramètre est self. "

Et self n'est qu'une manière conventionnelle d'écrire. Vous pouvez utiliser n'importe quel autre nom pour remplacer self, ce qui ne changera pas la signification du code, mais nous généralement, ne faites pas ça.

Pour mieux illustrer le rôle de soi, prenons un exemple. Il y a une classe d'étudiants ci-dessous :

class Students:
# 构造方法
def __init__(self,name):
self.name = name
# 实例方法
def study(self,examination_results):
self.examination_results = examination_results
print("同学{}的考试分数是{}".format(self.name,self.examination_results))
print("该实例对象的地址是{}".format(self))
Copier après la connexion

Prenons d'abord un exemple de student_a.

studend_a = Students('studend_a')
print(studend_a.name)
Copier après la connexion

Le résultat s'imprime : student_a.

Prenons un autre exemple student_b.

studend_b = Students('studend_b')
print(studend_b.name)
Copier après la connexion

Le résultat s'imprime : student_b.

On peut voir que les instances (objets) sont différentes et les résultats imprimés sont également différents. Lorsque la classe est instanciée, self.name est en fait égal à l'instance (object).name.

Prenons le code tout à l'heure comme exemple. Appelons la méthode d'instance à l'intérieur, et self sera imprimé, ce qui le rendra plus évident.

Instance student_a :

studend_a = Students('studend_a')
print(studend_a.study(80))
Copier après la connexion

Résultat de sortie :

La note à l'examen de l'étudiant student_a est de 80. L'adresse de l'objet instance est <「main」.Students object at 0x00000129EB0F6A90>.

Instance student_b :

studend_b = Students('studend_b')
print(studend_b.study(80))
Copier après la connexion

Résultat de sortie :

La note à l'examen de l'étudiant student_b est de 80. L'adresse de cet objet d'instance est <「main」.Students object at 0x00000129EB0F6B38>.

Vous pouvez clairement voir que le soi imprimé par les deux instances est différent, car le soi représente l'instance (l'objet) lui-même.

En prenant l'instance student_b comme exemple, lors de l'impression de soi, les informations d'objet suivantes apparaissent.

<__main__.Students object at 0x00000129EB0F6B38>.

Si vous imprimez à nouveau student_b, le même résultat apparaîtra.

print(student_b)
Copier après la connexion

Sortie :

<__main__.students object at>.

Est-il clair à ce stade qu'une fois la classe instanciée, self représente l'instance (objet) elle-même.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal