Par exemple, si j'essaie de faire :
a_string + an_int
... où a_string est de type 'str' et an_int est de type 'int', ou :
an_int + a_string
Il y aurait un TypeError
car il n'y a pas de conversion implicite des types. Je comprends que si j'utilisais mes propres sous-classes de int et string, je pourrais surcharger la fonction __add__()
dans mes classes pour y parvenir.
Cependant, par curiosité, j'aimerais savoir : serait-il possible de surcharger l'opérateur + dans les définitions de classe de l'outil de gestion de l'environnement ? int
y str
de sorte que __add__(int,str)
y __add__(str,int)
les concaténer automatiquement en tant que chaînes de caractères ?
Si non, quelles sont les raisons pour lesquelles un programmeur ne devrait pas surcharger les opérateurs pour un type de données natif ?