Afficher des attributs de classe avec des print (2)

Résolu
thestraw0 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33746 Date d'inscription   Statut Modérateur Dernière intervention   -

Hello,

Je suis élève en terminal et j'ai un projet sur python avec des classes 

Dans mon code, je donne des détails sur un personnage, par exemple "grand vert cheveux noir" et la personne doit deviner "Hulk". J'ai commencé mais je bloque. 

Je dois imprimer les attributs définis dans ma classe dans mon def jeu().

Pouvez-vous m'aider ? 

def jeu():

    class perso1:

        def __init__(self):
            self.age = '19'
            self.habit = 'chapeau de paille'
            self.univers = 'pirate'
            perso1_age=19

    class perso2:

        def __init__(self):
            self.age = '17'
            self.habit = 'écharpe à carreau veste noir'
            self.univers = 'fées'

    class perso3:
        def __init__(self):
            self.age = '22, célibataire et libre comme lair'
            self.habit = 'costard blanc'
            self.univers = 'école, prof'

    class perso4:
        def __init__(self):
            self.forme = 'grand vert detruit tout'
            self.habit = 'short violet déchiré'
            self.univers = 'Héros'

    print("1 : PERSO 1 FACILE")
    print("2 : PERSO 2 MOYEN")
    print("3 : PERSO 3 HARD")
    oui = int(input("Choisis ton niveau :"))
    if oui == 1:
        return(perso1_age)
    if oui == 2:
        print(perso2)
    if oui == 3:
        print(perso3)
    if oui == 4:
        print(perso4)
A voir également:

1 réponse

mamiemando Messages postés 33746 Date d'inscription   Statut Modérateur Dernière intervention   7 871
 

Bonjour,

Plusieurs choses :

  • Même si c'est syntaxiquement correct, tes classes devraient être définies en dehors de la fonction jeu.
class Personnage:
    def __init__(self, prenom: str, nom: str, age: int, univers: str):
        self.prenom = prenom
        self.nom = nom
        self.age = age
        self.univers = univers

def jeu():
    spiderman = Personnage("Peter", "Parker", 20, "Marvel")
    ...
  • Exactement comme dans ton autre discussion (voir en particulier ce message)
    • Par convention, tes classes devraient avoir un nom qui commence par une majuscule.
    • Il y a confusion entre classe et instance,
  • Les âges devraient être stockés sous forme d'entier, pas sous forme de chaîne de caractère.
  • La variable oui devrait probablement être renommée niveau.
  • Les tests associés étant exclusifs, tu devrais utiliser des elif.
if oui == 1:
   ...
elif oui == 2:
   ...
elif oui == 3:
   ...
else:
   ...
  • Avant de foncer tête baissée dans ton exercice, peut-être devrais-tu commencer par relire ton cours.

Bonne chance

1