Résultats de 1 à 4 sur 4

Sujet : surcharge de l'operateur de comparaison

  1. #1
    Membre MP
    Inscrit
    août 2013
    Messages
    1

    surcharge de l'operateur de comparaison

    Est-ce que quelqu\'un pourrait me dire comment on surcharge __cmp__() ?
    je fais :
    >>class A:
    ... def __cmp__(self,b):
    ... print \"coucou\"
    ... return 1
    ...

    et apres
    >>a=A()
    >>b=A()
    >>a==b
    coucou
    0
    ??? coment faire ? il rentre bien dans ma fonction mais se moque du return ?

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    38
    Salut,

    Je crois que la méthode __cmp__ doit pouvoir renvoyer un entier de la liste suivante (-1,0,1).
    Tu dois donc avoir:

    if ... :
    return -1
    elif ... :
    return 0
    else ... :
    return 1

  3. #3
    Membre MP
    Inscrit
    août 2013
    Messages
    2 225
    Le Python n\'est pas vraiment fait pour être surchargé car il peut accepter des arguments de tous types :
    Il est donc préférable d\'utiliser des syntaxes du type:

    Code:
    def func(arg):
        if type(arg)==... :
            ...
        elif type(arg)==... :
            ...

  4. #4
    Membre MP
    Inscrit
    août 2013
    Messages
    38
    Consulter la doc en ligne de Python.

    Attention, ce lien est valable pour la version 2.3.4

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé