Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

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, à 10: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, à 15:21)

Hors ligne

#2 Le 07/04/2021, à 10: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


[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr

Hors ligne

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

MPython Alaplancha

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


# Là pour le plaisir de découvrir ...
# Envie d'apprendre Bash ou Python? Pensez aux MOOC ---> https://forum.ubuntu-fr.org/viewtopic.php?id=2030646

Hors ligne

#4 Le 07/04/2021, à 12: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, à 12:22)


[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr

Hors ligne

#5 Le 07/04/2021, à 15: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