Afficher des attributs de classe avec print

Résolu

Bonjour,

Je suis en terminale, et je n'arrive pas à afficher les attributs de ma classe.

À l'aide ! Merci

4 réponses

  1. Modérateur
    1
    1. Modérateur

      Bonjour

      Concernant #3 :

      Ce n'est pas une excuse :

      • le forum te permet de modifier les messages que tu as écrits (clique sur les "..." en bas du message).
      • ton navigateur devrait souligner la plupart des fautes d'orthographe

      Concernant #1 :

      Tu confonds classe (le type associé à un objet) et instance (une variable dont le type est cette classe).

      • Personnage est une classe.
        • Les conventions de programmation font que le nom d'une classe devrait toujours commencer par une majuscule.
      • Spiderman est une instance de Personnage (au même titre que Hulk ou Batman)
        • Les conventions de programmation font que le nom d'une variable (en particulier, une instance de classe) devrait toujours commencer par une minuscule.
      • Dans le code d'une méthode (par exemple __init__), l'instance en train d'être manipulée est désignée par self.
      • À l'extérieur du code d'une classe, on peut accéder à un attribut ou à une méthode en appliquant l'opérateur "." à l'instance de son choix
      class Personnage:
          def __init__(self, prenom: str, nom: str):
              self.nom = nom
              self.prenom = prenom
      
      spiderman = Personnage("Peter", "Parker")
      batman = Personnage("Bruce", "Wayne")
      print(spiderman.prenom)
      print(spiderman.nom)

      Bonne chance

      1
      1. Bonsoir, il est préférable d'insérer du code dans ton message plutôt que des images, et sur internet lorsqu'on écrit en majuscules, c'est pour crier (-;

        Les classes n'ont pas d'attributs, en revanche les objets qui existeront après instanciations de tes classes, possèderont eux, oui des attributs.

        Il faut bien comprendre la différence entre classes et objets, attributs d'objets et variables de classes.

        class A:
            var_b = 'variable b'
            def __init__(self):
                self.b = 'attribut b'
        
        print(A.var_b) # Variable de classe
        # print(A.b) # Erreur !
        
        a = A()
        print(a.var_b)
        print(a.b)
        
        0
        1. Oui désolé je n'ai pas fait attention que j'étais en majuscules. De plus on peut le remarquer aux fautes d'orthographe. Désolé

          0