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.

# détermine si l'instance passée est une new-style cass<br />

alias nsc issubclass(%1.__class__, object)<br />

Principaux modules, partie 2<br />

CHAPITRE 9<br />

Les commandes peuvent récupérer des paramètres en entrée, suivant le modèle des<br />

scripts shell : %1 est le premier paramètre, %2 le second, etc. %* renvoie tous les paramètres,<br />

à l’image de *args. Les commandes peuvent bien sûr utiliser d’autres alias<br />

s’ils ont été définis avant.<br />

Utilisation des alias<br />

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

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

... self.t = 12<br />

...<br />

>>> t = T()<br />

>>> import pdb; pdb.set_trace()<br />

--Return-alias<br />

charges<br />

> (1)?()->None<br />

(Pdb) obvars t<br />

{'t': 12}<br />

(Pdb) nsc t<br />

True<br />

Le mode post mortem<br />

Le mode post mortem, comme son nom l’indique, permet d’utiliser pdb après la mort<br />

du programme. En d’autres termes, lorsque le programme lève une exception, il est<br />

possible d’étudier la dernière pile d’appel, et même de remonter les niveaux. Ce mode<br />

s’obtient par la fonction pm().<br />

Le retour du code vivant<br />

def sub_function(texte):<br />

for i in range(3):<br />

raise TypeError('affreux plantage')<br />

print(text)<br />

def main_function():<br />

for i in range(2):<br />

sub_function(str(i))<br />

[...]<br />

>>> from debugging import ma_fonction<br />

>>> main_function()<br />

293

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

Saved successfully!

Ooh no, something went wrong!