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:
En fait j'ai un peu peur que isinstance() soit légèrement... prohibitif en terme de temps d'exécution
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()
Limite je me demandais si passer sur quelque chose comme ca:
ne serait pas plus efficace. Qu'en pensez vous ?
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
Partager