Partage
  • Partager sur Facebook
  • Partager sur Twitter

Accéder à une variable avec un string de même nom

Sujet résolu
Anonyme
    24 septembre 2021 à 22:22:35

    Bonjour, bonsoir à tous. Je voulais faire un programme de notation à l'aide de la POO et je me retrouve bloqué à cause d'une erreur. J'ai vais vous montrer les choses à l'aide d'un exemple pour que ce soit plus clair. Je veux obtenir la liste des notes d'anglais de l'objet 'Student1'. Alors je passe le string 'english' en argument de la méthode get_grades. Celle ci exécute l'instruction 'return self.subject' ce qui naturellement engendre une erreur car l'objet n'a pas d'attribut 'subject'. En fait je veux à la place faire un 'return self.english' (dans cette exemple). Comment faire svppp mercii

    Voici le code:

    class Student:

    def __init__(self):
        self.english = [16, 11]
        self.maths = [12, 14]
    
    def get_grades(self, subject):
        return self.subject       # La ligne fatale
    

    Student1 = Student()

    print(Student1.get_grades('english'))


    -
    Edité par Anonyme 24 septembre 2021 à 22:25:21

    • Partager sur Facebook
    • Partager sur Twitter
      24 septembre 2021 à 22:41:58

      Le problème que tu rencontres est dû à une mauvaise conception. Même si globalement y'a moyen de faire ce que tu veux faire, tu n'as aucune raison de le faire en temps que débutant.

      Ceci devrait te convenir :

      class Student:
      	def __init__(self):
      		self.notes = {
      			'english' : [16, 11],
      			'maths': [12, 14]
      		}
      		
      	def get_grades(self, subject):
      		return self.notes[subject] 



      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        25 septembre 2021 à 13:25:41

        Nephthys a écrit: >

        Merciii

        • Partager sur Facebook
        • Partager sur Twitter

        Accéder à une variable avec un string de même nom

        × 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