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.

278<br />

abc<br />

La bibliothèque standard<br />

TROISIÈME PARTIE<br />

Array en action<br />

>>> import array<br />

>>> tableau = array.array('c', 'Oh, mon tableau, o, OOoO')<br />

>>> tableau.count('o')<br />

3<br />

>>> tableau.extend(', tu es le plus beau des tableaux')<br />

>>> tableau.insert(0, 'Ô')<br />

ÔOh, mon tableau, o, OOoO, tu es le plus beau des tableaux<br />

>>> entiers = array.array('i', [1, 2, 3, 4, 5])<br />

>>> entiers.tostring()<br />

'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x<br />

00\x00\x00'<br />

Le module abc introduit un concept de classe abstraite, décrit dans le PEP 3119<br />

(voir http://www.python.org/dev/peps/pep-3119).<br />

Une classe abstraite est une classe qui permet de définir un certain nombre de<br />

méthodes dites abstraites. Une méthode abstraite est une méthode qui n’est pas réellement<br />

utilisée dans un programme, mais qui sert de guide à l’ensemble des classes<br />

dérivées.<br />

Prenons l’exemple d’une classe Sized, qui définit la méthode abstraite __len__.<br />

Définir une méthode abstraite en Python peut se faire en levant une l’exception<br />

NotImplementedError dans le code.<br />

Classe abstraite Sized<br />

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

... def __len__(self):<br />

... raise NotImplementedError<br />

...<br />

Ainsi, elle ne peut pas être utilisée directement, et il faut implémenter __len__ dans<br />

une classe dérivée appelée classe concrète.<br />

Classe Data<br />

>>> class Data(Sized):<br />

... def __init__(self):<br />

... self._data = []<br />

... def add(self, data):<br />

... self._data.append(data)

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

Saved successfully!

Ooh no, something went wrong!