titre du répertoire
brève description
Voici un tableau Markdown qui compare self
et __init__
compare sous plusieurs angles :__str__
self |
__init__ |
__str__ |
|
---|---|---|---|
taper | paramètre | méthode | méthode |
effet | faisant référence à l'objet d'instance lui-même | initialiser l'instance | Définit la représentation sous forme de chaîne de l'instance |
prototype de fonction | def method(self, ...) |
def __init__(self, ...) |
def __str__(self) |
valeur de retour | Aucun (utilisé comme paramètre) | Aucun (pour l'initialisation) | chaîne |
Est-ce nécessaire | Oui (dans les méthodes d'instance) | Non (mais généralement obligatoire) | Non (mais requis si l'impression ou la conversion en chaîne est requise) |
scènes à utiliser | Accéder ou modifier les propriétés d'instance dans les méthodes d'instance, ou appeler d'autres méthodes d'instance | Définir l'état initial lors de la création d'une nouvelle instance | À utiliser lors de l'impression d'une instance ou de la conversion d'une instance en chaîne |
Ce tableau fournit une comparaison de base de self
, __init__
et __str__
. L'utilisation exacte peut varier en fonction de vos besoins et de la conception de la classe.
En Python, self
et __init__
sont __str__
des éléments communs dans les définitions de classe. Leurs objectifs respectifs et leurs différences sont les suivants :
-
self : en Python,
self
il s'agit d'un nom conventionnel utilisé pour désigner l'objet instance lui-même. Lorsque vous définissez une méthode d'une classe, le premier paramètre est généralement nomméself
, qui représente l'instance de la classe. Grâce à luiself
, vous pouvez accéder aux propriétés d'instance et les modifier, ou appeler d'autres méthodes d'instance.class MyClass: def my_method(self): print("This is a method of the instance: ", self)
-
init :
__init__
est une méthode spéciale appelée méthode constructeur de la classe.__init__
Les méthodes sont automatiquement appeléeslorsque vous créez une nouvelle instance d'une classeVous pouvez__init__
définir l'état initial de l'instance dans la méthode, par exemple en initialisant les propriétés de l'instance.class MyClass: def __init__(self): self.my_attribute = "Hello, world!"
-
str :
__str__
également une méthode spéciale qui doit renvoyer une chaîne représentant l'instance. La méthode est appeléelorsque vous utilisezprint
la fonction pour imprimer une instance ou utilisezstr
la fonction pour convertir une instance en string__str__
class MyClass: def __init__(self, my_attribute): self.my_attribute = my_attribute def __str__(self): return "MyClass with my_attribute: " + self.my_attribute my_instance = MyClass("Hello, world!") print(my_instance) # 输出:MyClass with my_attribute: Hello, world!
En général, self
et __init__
sont __str__
des éléments importants dans la définition de classe Python, qui sont utilisés pour faire référence à l'instance elle-même, initialiser l'instance et définir la représentation sous forme de chaîne de l'instance.
prototype
En Python, les prototypes de fonction de , et sont généralement les self
suivants__init__
:__str__
-
self :
self
Pas une fonction, mais un paramètre utilisé dans une méthode d'une classe pour faire référence à l'objet instance lui-même. Lors de la définition d'une méthode d'une classe, elle est généralement donnéeself
comme premier paramètre :def some_method(self, other_arguments): # 方法体
-
init :
__init__
est une méthode spéciale utilisée pour initialiser une nouvelle instance d'une classe. Son prototype de fonction est le suivant :def __init__(self, other_arguments): # 方法体
Voici
other_arguments
les autres paramètres que vous devez passer à__init__
la méthode. -
str :
__str__
également une méthode spéciale utilisée pour renvoyer une chaîne représentant une instance. Son prototype de fonction est le suivant :def __str__(self): # 方法体,返回一个字符串
Notez que
__str__
la méthode ne prend aucunself
argument autre que , et doit renvoyer une chaîne.
Dans ces prototypes de fonction, self
le paramètre est obligatoire car il représente une instance de la classe. Pour __init__
la méthode et __str__
, vous pouvez ajouter d'autres paramètres ou modifier la valeur de retour selon vos besoins.
scènes à utiliser
Voici des scénarios d'utilisation courants pour self
et __init__
en __str__
Python :
-
self :
self
utilisé comme premier paramètre dans la méthode de la classe pour faire référence à l'objet instance lui-même. Cela permet aux méthodes d'instance d'accéder aux propriétés d'instance et de les modifier, ou d'appeler d'autres méthodes d'instance. Par exemple, si vous écrivez une classe qui représente un compte bancaire, vous devrez peut-êtreself
accéder au solde du compte et le modifier à l'aide declass BankAccount: def __init__(self, initial_balance): self.balance = initial_balance def deposit(self, amount): self.balance += amount def withdraw(self, amount): if amount <= self.balance: self.balance -= amount else: print("Insufficient balance!")
-
init :
__init__
La méthode est appelée lorsqu'une nouvelle instance de la classe est créée et est utilisée pour initialiser l'état de l'instance. Par exemple, si vous écrivez une classe qui représente un rectangle, vous devrez peut-être__init__
recevoir la largeur et la hauteur en tant que paramètres dans une méthode et les stocker en tant que propriétés de l'instance.class Rectangle: def __init__(self, width, height): self.width = width self.height = height def area(self): return self.width * self.height
-
str :
__str__
la méthode est utilisée pour définir une représentation sous forme de chaîne d'une instance, ce qui est utile lors de l'impression d'une instance ou de la conversion d'une instance en chaîne. Par exemple, si vous écrivez une classe qui représente une date, vous devrez peut-être__str__
renvoyer une chaîne de date formatée dans une méthode.class Date: def __init__(self, year, month, day): self.year = year self.month = month self.day = day def __str__(self): return f"{ self.year}-{ self.month:02d}-{ self.day:02d}"
Ce ne sont là que quelques scénarios d'utilisation de base de self
, __init__
et . En fait, vous pouvez les utiliser en fonction de vos besoins spécifiques.__str__
épilogue
La compréhension est une étape importante vers le niveau suivant dans notre parcours d'apprentissage de la programmation. Cependant, maîtriser de nouvelles compétences et idées demande toujours du temps et de la persévérance. D'un point de vue psychologique, l'apprentissage s'accompagne souvent d'essais et d'erreurs continus et d'ajustements, c'est comme si notre cerveau optimisait progressivement son « algorithme » pour résoudre les problèmes.
C'est pourquoi, lorsque nous rencontrons des erreurs, nous devons les voir comme des opportunités d'apprendre et de nous améliorer, pas seulement comme des obsessions. En comprenant et en résolvant ces problèmes, nous pouvons non seulement corriger le code actuel, mais aussi améliorer notre capacité de programmation et éviter que les mêmes erreurs ne se reproduisent dans de futurs projets.
J'encourage tout le monde à participer activement et à améliorer continuellement leurs compétences en programmation. Que vous soyez un débutant ou un développeur expérimenté, j'espère que mon blog pourra vous aider dans votre parcours d'apprentissage. Si vous trouvez cet article utile, vous pouvez cliquer pour le mettre en signet, ou laisser vos commentaires pour partager vos idées et vos expériences.Vous êtes également invités à faire des suggestions et des questions sur le contenu de mon blog. Chaque like, commentaire, partage et suivi est le plus grand soutien pour moi et la motivation pour moi de continuer à partager et à créer.
Lisez ma page d'accueil CSDN pour débloquer du contenu plus intéressant : page d'accueil CSDN de Bubble