17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

126<br />

Éléments du langage<br />

DEUXIÈME PARTIE<br />

>>> val3 += val1<br />

>>> str(val3)<br />

'22'<br />

>>> str(val1)<br />

'5'<br />

>>> str(val2)<br />

'12'<br />

New-style classes<br />

Python 2.2 a introduit un nouveau type d’objet appelé object. Ce type définit une<br />

classe qui peut être utilisée comme classe de base pour toute nouvelle définition de<br />

classe. Les classes basées sur le type object sont appelées new-style class.<br />

New-style class<br />

>>> object.__doc__<br />

'The most base type'<br />

>>> class Car:<br />

... pass<br />

...<br />

>>> class NewCar(object):<br />

... pass<br />

...<br />

>>> mehari = Car()<br />

>>> citroen_c5 = NewCar()<br />

>>> dir(mehari)<br />

['__doc__', '__module__']<br />

>>> dir(citroen_c5)<br />

['__class__', '__delattr__', '__dict__', '__doc__', '__format__',<br />

'__getattribute__', '__hash__', '__init__', '__module__', '__new__',<br />

'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__',<br />

'__subclasshook__', '__weakref__']<br />

object introduit un certain nombre de méthodes privées qui permettent de bénéficier<br />

de nouveaux mécanismes comme :<br />

un nouveau Method Resolution Order ;<br />

le constructeur statique, sorte de méta-constructeur pour toutes les instances d’un<br />

type de classe ;<br />

la surcharge de type() par les metaclass, qui permet de contrôler le cycle complet<br />

de création d’un objet ;<br />

les descriptors, qui permettent de personnaliser l’accès aux attributs ;<br />

les properties, descriptors automatiques ;<br />

les slots, économiseurs de mémoire.

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

Saved successfully!

Ooh no, something went wrong!