Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/04/2021, à 11:32

chris7522

[Resolu]Enregistrement implémenté comme une instance de classe(python)

Bonjour a toutes et a tous,
  J'ai essayé de mettre tout ca dans le meme fichier tel quel , mais j'ai un message d'erreur  .   Qu'est ce qui ne va pas ?
  Merci de votre aide.

class Personne:
    def _init_(self,name,age,email):
        self.name=name
        self.age=age
        self.email=email
    def _repr_(self):
        return f" {self.name} a {self.age},email : {self.email}"
        
    personnes = [
        Personne('Luc',24,'luc@gmail.com'),
        Personne('Jean',35,'jean@gmail.com'),
        Personne('stephane',54,'steph@gmail.com'),
        ]
for personne in personnes:
    print(personne)

Dernière modification par chris7522 (Le 07/04/2021, à 16:21)

Hors ligne

#2 Le 07/04/2021, à 11:41

Nuliel

Re : [Resolu]Enregistrement implémenté comme une instance de classe(python)

Hop, le code corrigé:

class Personne:
    def __init__(self,name,age,email):
        self.name=name
        self.age=age
        self.email=email
    def __repr__(self):
        return f" {self.name} a {self.age},email : {self.email}"
        
personnes = [
    Personne('Luc',24,'luc@gmail.com'),
    Personne('Jean',35,'jean@gmail.com'),
    Personne('stephane',54,'steph@gmail.com'),
    ]
for personne in personnes:
    print(repr(personne))

Deux trois problèmes:
- personnes était dans la classe alors qu'il devait être à l'extérieur
- c'est __init__ et non _init_
- print(personne) va pas appeler repr, il faut donc l'appeler en plus

Hors ligne

#3 Le 07/04/2021, à 12:25

Compte supprimé

Re : [Resolu]Enregistrement implémenté comme une instance de classe(python)

Bonjour,

Nuliel a écrit :

- print(personne) va pas appeler repr, il faut donc l'appeler en plus

s'il n'existe pas de méthode __str__ dans la classe(comme c'est le cas ici), le print appelle la méthode __repr__.
S'il y avait une méthode __str__ c'est elle qui serait appelée par défaut... wink

#4 Le 07/04/2021, à 13:21

Nuliel

Re : [Resolu]Enregistrement implémenté comme une instance de classe(python)

Exact, je me suis planté pendant mes tests, j'avais pas dû mettre à ce moment les _ sur repr (ça m'affichait les addresses des objets)

Dernière modification par Nuliel (Le 07/04/2021, à 13:22)

Hors ligne

#5 Le 07/04/2021, à 16:20

chris7522

Re : [Resolu]Enregistrement implémenté comme une instance de classe(python)

C'est bien claire pour moi smile
Merci de votre aide

Hors ligne