17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

120<br />

Éléments du langage<br />

DEUXIÈME PARTIE<br />

__repr__() doit donc permettre de recréer l’objet. Si le reverse n’est pas possible,<br />

__repr__() doit renvoyer une string de la forme ''. Les instances de<br />

classe renvoient en général leur adresse mémoire.<br />

__cmp__(other)<br />

Utilisée par tous les opérateurs de comparaison lorsque l’objet est impliqué.<br />

__cmp__() doit renvoyer :<br />

un entier négatif si self est inférieur à other ;<br />

un entier positif si self est supérieur à other ;<br />

zéro en cas d’égalité.<br />

[__lt__, __le__, __eq__, __ne__, __gt__, __ge__](other)<br />

Ensemble de méthodes de comparaison, qui sont utilisées de préférence à __cmp__()<br />

si elles sont présentes, pour chacun des opérateurs. Ces méthodes doivent renvoyer<br />

True ou False ;<br />

a < b correspond à a.__lt__(b) ;<br />

a b correspond à a.__gt__(b) ;<br />

a >= b correspond à a.__ge__(b).<br />

Il n’y a aucun contrôle d’intégrité sur ces opérateurs : __ne__ et __eq__ peuvent tous<br />

les deux renvoyer True. Lorsqu’une méthode est implémentée, il est donc conseillé<br />

de toujours implémenter la méthode symétrique pour assurer l’intégrité.<br />

Enfin, si ni __cmp__(),ni __eq__ et __ne__ ne sont définies, la primitive id() sera<br />

utilisée pour la comparaison.<br />

__hash__()<br />

Appelée par la primitive hash() ou par un objet dictionnaire lorsque l’objet est utilisé<br />

comme clé. Doit renvoyer un entier de 32 bits. Si deux objets sont définis comme<br />

égaux, par __cmp__(), __eq__() ou __ne__(), __hash__() doit renvoyer la même<br />

valeur pour ces deux objets.<br />

__nonzero__()<br />

Appelée par la primitive bool() et par la comparaison avec True ou False. Doit renvoyer<br />

True ou False. Lorsque cette méthode n’est pas définie, c’est __len__() qui est<br />

utilisée. __len__() représente la taille de l’objet. Si aucune des deux méthodes n’est<br />

présente, l’objet est toujours considéré comme vrai.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!