Python __str__ Exemple

Python __str__ Exemple
La fonction __str__ dans Python est simplement utilisée pour renvoyer la sortie des fonctions Python dans un format de chaîne. Cette fonction est principalement utilisée avec les fonctions définies par l'utilisateur car leurs sorties ne sont généralement pas dans le format de chaîne. Pour une compréhension plus facile de ces sorties, ils doivent être convertis au format de chaîne. Cependant, pour les classes définies par l'utilisateur, vous devez d'abord implémenter cette fonction. De plus, une autre fonction connue sous le nom de fonction __repr__ est toujours appelée chaque fois que vous appelez la fonction __str__. Par conséquent, vous pouvez définir ces deux fonctions, soit du moins, vous devez définir la fonction __repr__. Vous pouvez lire complètement cet article pour comprendre l'utilisation de cette fonction dans Python.

Exemples de __str__ dans Python dans Windows 10

Vous trouverez ci-dessous quelques-unes des différentes utilisations de la fonction __str__ de Python. En parcourant ces exemples de manière approfondie, vous comprendrez comment la fonctionnalité de cette fonction diffère entre les classes par défaut et définies par l'utilisateur.

Exemple 1

Dans cet exemple, nous voulions utiliser une classe Python prédéfinie ou par défaut, je.e., DateTime, avec la fonction __str__. Ici, nous tenons à affirmer que pour les classes prédéfinies ou par défaut, toutes ces fonctions sont implémentées par défaut. Vous n'avez pas à les définir manuellement. Le code que nous avons écrit pour démontrer cet exemple est le suivant:

Dans ce code Python, nous avons d'abord importé la valeur par défaut "DateTime" classe. Après cela, nous avons déclaré une variable nommée «actuel»Et lui a attribué la valeur du«DateTime.maintenant()«Fonction du«DateTime”Classe Python. Cette fonction renvoie la date et l'heure du système actuels. Après cela, nous voulions imprimer la valeur de la fonction __str__ suivie de la valeur de la fonction __repr__.

La sortie produite à la suite de l'exécution de ce script Python est affichée dans l'image ci-dessous:

Nous savons que les fonctions __str__ et __repr__ ont été implémentées par défaut car nous utilisons une classe prédéfinie, i.e., DateTime. La fonction __str__ a simplement renvoyé la sortie du «DateTime.maintenant()”Fonction sous la forme d'une chaîne. En revanche, la fonction __Repr__ a renvoyé la sortie du «DateTime.maintenant()”Fonction dans un format en utilisant lequel cette sortie peut être reconstruite. Le point à noter ici est que ces résultats sont simplement basés sur les implémentations par défaut des fonctions __str__ et __repr__ de Python.

Exemple 2

Dans cet exemple, nous voulions utiliser la fonction __str__ avec une classe définie par l'utilisateur d'une manière que les fonctions __str__ et __repr__ n'étaient pas définies. Le code que nous avons écrit pour démontrer cet exemple est le suivant:

Dans ce code Python, nous avons déclaré une classe nommée «Employé". Ensuite, nous avons initialisé ses attributs qui étaient EMP_NAME et EMP_ID. Après cela, nous avons créé un objet du «Employé«Classe, je.e., "E"Et avec l'aide de cet objet, nous avons créé une instance d'employée avec l'EMP_NAME"Hasan"Et emp_id"1". Enfin, nous avons simplement imprimé la valeur de la fonction __str__ suivie de la valeur de la fonction __repr__. Nous tenons à mentionner à nouveau que nous n'avons encore mis en œuvre aucune de ces fonctions.

La sortie qui a été produite à la suite de l'exécution de ce script Python est affichée dans l'image ci-dessous:

Puisque nous avons traité avec une classe définie par l'utilisateur dans cet exemple, nous étions censés implémenter les fonctions __str__ et __repr__ nous-mêmes. Cependant, nous ne l'avons pas fait, c'est pourquoi nous avons simplement reçu l'adresse du «Employé”Objet comme notre sortie.

Exemple 3

Dans cet exemple, nous voulions utiliser la fonction __str__ avec une classe définie par l'utilisateur afin que seule la fonction __REPR__ soit définie et non la fonction __str__. Le code que nous avons écrit pour démontrer cet exemple est le suivant:

Dans ce code Python, nous avons déclaré une classe nommée «Employé". Ensuite, nous avons initialisé ses attributs qui étaient EMP_NAME et EMP_ID. Nous avons également défini la fonction __repr__, et cette définition est personnalisée selon notre propre choix. Après cela, nous avons créé un objet du «Employé«Classe, je.e., "E"Et avec l'aide de cet objet, nous avons créé une instance d'employée avec l'EMP_NAME"Hasan"Et emp_id"1". Enfin, nous avons simplement imprimé la valeur de la fonction __str__ suivie de la valeur de la fonction __repr__.

La sortie qui a été produite à la suite de l'exécution de ce script Python est affichée dans l'image ci-dessous:

Depuis que nous avons défini la fonction __Repr__ dans notre code, la même définition a été utilisée pour produire la sortie des fonctions __repr__ et __str__.

Exemple 4

Dans cet exemple, nous voulions utiliser la fonction __str__ avec une classe définie par l'utilisateur d'une manière que les fonctions __repr__ et __str__ étaient définies. Le code que nous avons écrit pour démontrer cet exemple est le suivant:

Dans ce code Python, nous avons déclaré une classe nommée «Employé". Ensuite, nous avons initialisé ses attributs qui étaient EMP_NAME et EMP_ID. Nous avons également défini les fonctions __repr__ et __str__, et ces définitions sont personnalisées en fonction de notre propre choix. La fonction __str__ affichera la sortie sous la forme d'une instruction complète, tandis que la fonction __repr__ renvoie simplement les valeurs de sortie de chaîne dans notre cas. Après cela, nous avons créé un objet du «Employé«Classe, je.e., «E» et avec l'aide de cet objet, nous avons créé une instance d'employée avec l'EMP_NAME «Hasan"Et emp_id"1". Enfin, nous avons simplement imprimé la valeur de la fonction __str__ suivie de la valeur de la fonction __repr__.

La sortie qui a été produite à la suite de l'exécution de ce script Python est affichée dans l'image ci-dessous:

Étant donné que les fonctions __str__ et __repr__ ont été définies dans notre code et que les définitions de ces deux fonctions différaient les unes des autres, les sorties de ces deux fonctions sont différentes.

Exemple 5

Dans cet exemple, nous voulions utiliser la fonction __str__ avec une classe définie par l'utilisateur d'une manière que seule la fonction __str__ sera définie et non la fonction __Repr__. Le code que nous avons écrit pour démontrer cet exemple est le suivant:

Dans ce code Python, nous avons déclaré une classe nommée «Employé". Ensuite, nous avons initialisé ses attributs qui étaient EMP_NAME et EMP_ID. Nous avons également défini la fonction __str__, et cette définition est personnalisée selon notre propre choix. Après cela, nous avons créé un objet du «Employé" classe, "E», Et avec l'aide de cet objet, nous avons créé une instance d'employée avec l'EMP_NAME«Hasan"Et emp_id"1". Enfin, nous avons simplement imprimé la valeur de la fonction __str__ suivie de la valeur de la fonction __repr__.

La sortie qui a été produite à la suite de l'exécution de ce script Python est affichée dans l'image ci-dessous:

Puisque nous n'avions défini que la fonction __str__ dans notre code, sa valeur a été correctement imprimée. Alors que pour la fonction __Repr__, nous avons de nouveau reçu l'adresse de notre «Employé”Objet puisque cette fonction n'a pas été définie dans notre code.

Conclusion

Dans ce guide, nous vous avons d'abord présenté les fonctions __str__ et __repr__ de Python. Pour bien comprendre le fonctionnement de ces fonctions, nous avons partagé cinq exemples différents avec vous dans lesquels nous vous avons montré comment l'implémentation de l'une ou les deux de ces fonctions affecte la sortie de votre code Python. La dernière chose que nous aimerions vous rappeler, c'est que si vous utilisez ces fonctions avec une classe par défaut, vous n'aurez pas besoin de définir ces fonctions explicitement. Cependant, pour les classes définies par l'utilisateur, il est obligatoire de définir ces fonctions.