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 : Sélectionner tout - Visualiser dans une fenêtre à part
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

Limite je me demandais si passer sur quelque chose comme ca:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?