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.

472<br />

Techniques avancées<br />

QUATRIÈME PARTIE<br />

Format Type Python<br />

en entrée<br />

k integer Unsignedlong RAS<br />

L integer PY_LONG_LONG Convertit en entier 64 bits défini par le type<br />

PY_LONG_LONG, lorsque la plate-forme le<br />

supporte.<br />

K integer unsignedPY_LONG_LONG RAS<br />

c string char Convertit une string de 1 caractère en char.<br />

f float float RAS<br />

d float double RAS<br />

D complex Py_complex Convertit un nombre complexe en une structure C<br />

définie par Py_complex.<br />

O objet PyObject* Fournit un pointeur de type PyObject vers<br />

l’objet.<br />

S string PyObject* Comme O mais si l’objet n’est pas du type string,<br />

une erreur TypeError est levée.<br />

U unicode PyObject* Comme O mais si l’objet n’est pas du type<br />

unicode, une erreur TypeError est levée.<br />

(x, x, tuple éléments Chaque élément du tuple Python est converti en<br />

x, ...)<br />

élément C. Chaque x représente un des formatages<br />

vu précédemment.<br />

À ces formatages s’ajoute l’opérateur I, qui permet de spécifier que les paramètres<br />

suivants sont optionnels. Dans notre exemple, le format ii spécifie que deux entiers<br />

sont attendus.<br />

La fonction Py_BuildValue permet de procéder aux mêmes conversions, dans le sens<br />

inverse. Le résultat entier C est donc converti en objet integer par un appel à<br />

Py_BuildValue("i", resultat).<br />

Définition de la table des méthodes<br />

Tableau 13–1 Formatage des paramètres (suite)<br />

Type C en sortie Commentaires<br />

La fonction max() est maintenant prête à être utilisée par l’interpréteur, et la prochaine<br />

étape consiste à la rendre visible, en définissant la table des méthodes, tableau<br />

de type PyMethodDef.<br />

Chaque entrée est de la forme {nom, fonction, convention d’appel, docstring},<br />

avec :<br />

nom : nom publié par l’interpréteur ;<br />

fonction : fonction C liée ;

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

Saved successfully!

Ooh no, something went wrong!