Partage
  • Partager sur Facebook
  • Partager sur Twitter

class Student s'affiche pas year

    28 novembre 2020 à 16:10:01

    class Student s'affiche pas year, il s'affiche seulement firstname et lastname

    quelqu'un peut m'aider s'il vous plaît

    # coding:utf-8
    class Person:
        def __init__(self, fname, lname):
         self.firstname = fname
         self.lastname = lname
    
        def printname(self):
            print(self.firstname, self.lastname)
    
    
    x = Person("John", "Doe")
    x.printname()
    
    
    class Student(Person):
        def __init__(self, fname, lname, year):
           Person.__init__(self, fname, lname)
           super().__init__(fname, lname)
           self.graduationyear = year
    
        def welcome(self):
            print("welcome", self.firstname, self.lastname, "to the class of", self.graduationyear)
    
    
    x = Student("Mike", "Olsen", 2019)
    x.printname()
    x.welcome()
     


    pour le printname()

    affiche

    "Mike Olsen"

    au lieu de

    "Mike Olsen 2019"

    Pourquoi?

    -
    Edité par xavierdominique 28 novembre 2020 à 16:30:51

    • Partager sur Facebook
    • Partager sur Twitter
      28 novembre 2020 à 17:00:02

      xavierdominique a écrit:

      Pourquoi?

      La méthode qui affiche est printname. Il y en a qu'une dans la classe mère.

      Si une classe fille a d'autres attributs, la classe mère n'a aucune raison de les prendre en compte.

      Tel que votre code est écrit, difficile de ne pas surcharger printname dans la classe fille.

      • Partager sur Facebook
      • Partager sur Twitter
        29 novembre 2020 à 14:55:31

        pour info les lignes 17 et 18 font la même chose
        • Partager sur Facebook
        • Partager sur Twitter
          29 novembre 2020 à 18:58:25

          Et la 18 est plus propre car gère correctement la hiérarchie des classes.

          • Partager sur Facebook
          • Partager sur Twitter

          class Student s'affiche pas year

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown