Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec méthode

Sujet résolu
    3 novembre 2011 à 18:36:40

    Bonjour,

    Je veux que ma méthode nommée nombreDeComposants me renvoie un float pour pouvoir, par la suite, l'évaluer comme ceci : Circuit.nombreDeComposants > 0 . Avec le code que j'utilise, c'Est impossible puisqu'il me renvoie TypeError: unorderable types: method() > int().

    Si vous pouviez m'aider comment je pourrais m'y prendre, ça serait grandement apprécié. Voici mon code :

    class Circuit:
        """ Cette classe encapsule un circuit composé d'une liste de composants."""
    
        def __init__(self, *composants):
            """ Cette fonction permet de construire un circuit à partir d'un nombre
            quelconque de composants ou même de circuits. """
            self.composants = list(composants)
    
        def nombreDeComposants(self):
            """ Cette fonction retourne le nombre de composants """
            return len(self.composants)
    


    Merci pour votre aide.
    • Partager sur Facebook
    • Partager sur Twitter
      3 novembre 2011 à 19:08:11

      Soit tu utilises Circuit.nombreDeComposants() > 0, soit tu utilises le décorateur @property qui retournera directement la valeur, sans devoir passer par un appel de fonction (c'est ce que le décorateur fait implicitement ) :

      class Circuit(object): #penser à rajouter (object)
          """ Cette classe encapsule un circuit composé d'une liste de composants."""
      
          def __init__(self, *composants):
              """ Cette fonction permet de construire un circuit à partir d'un nombre
              quelconque de composants ou même de circuits. """
              self.composants = list(composants)
      
          @property
          def nombreDeComposants(self):
              """ Cette fonction retourne le nombre de composants """
              return len(self.composants)
      c = Circuit(1,2,3)
      print c.nombreDeComposants > 2
      

      Affichera True ;)
      • Partager sur Facebook
      • Partager sur Twitter
        3 novembre 2011 à 20:25:38

        Merci énormément MathX! Tout fonctionne :)
        • Partager sur Facebook
        • Partager sur Twitter

        Problème avec méthode

        × 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