Optimisation de surcharge d'operateurs de class
Après avoir écrit quelques uns de mes opérateurs pour certaines classes, je me pose la question de savoir si je n'ai pas écris une usine à gas.
A savoir que ces opérateurs vont être utilisé par PyQT car se sont les opérateur d'un DataModel, et donc appelé vaaaaaaaaaachement souvent.
Voici la facon dont je les écrit aujourd'hui:
Code:
1 2 3 4 5
| def __eq__(self, other):
if isinstance(other, int):
return self.revision() == other
else:
return self.revision() == other.revision() |
En fait j'ai un peu peur que isinstance() soit légèrement... prohibitif en terme de temps d'exécution 8O
Limite je me demandais si passer sur quelque chose comme ca:
Code:
1 2 3 4
| try:
return self.revision() == other.revision()
except AttributError, e:
return self.revision() == other |
ne serait pas plus efficace. Qu'en pensez vous ?