Bon, je comprends que j'ai voulu faire une conn***.
En fait, je veux créer une classe MOT ayant le même comportement que le type string. Donc pouvoir écrire : (avec, par exemple, la classe LETTRE qui joue le même rôle qu'un caractère isolé)
Code :
- class MOT(list):
- pass
- class LETTRE(object):
- pass
- lettre_a = LETTRE('a')
- lettre_b = LETTRE('b')
- mot = MOT(lettre_a)
- # 2 manières de l'écrire mais seule la première fonctionne :
- mot = mot + lettre_b # ça fonctionne car 'mot + lettre_b' fait appel à MOT.__add__
- mot += lettre_b
|
En python, on peut écrire aussi bien l'un que l'autre avec le type string:
Code :
- s = ""
- s = s + 'a' # première possibilité
- s += 'a' # deuxième possibilité
|
car dans le deuxième cas 'a' est de type str (donc iterable). Ce n'est pas le cas de mes objets LETTREs.
Cela dit, même si mon idée est idiote, je voudrais ne pas mourir idiot : quelle fonction devrait-on surcharger pour réécrire le comportement de += ???
Merci !
Message édité par suizokukan le 01-06-2007 à 19:03:57
---------------
rule #1 : trust the python