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.

158<br />

Éléments du langage<br />

DEUXIÈME PARTIE<br />

À SAVOIR Les fichiers .pyc et .pyo<br />

Les fichiers .pyc ou .pyo qui apparaissent pour chaque fichier .py exécuté sont le fruit d’un appel à<br />

compile().<br />

delattr : delattr(objet, nom)<br />

Supprime un attribut nommé d’un objet. Équivalente à del objet.nom, cette fonctionnalité<br />

doit être utilisée avec précaution car la suppression d’un attribut peut<br />

entraîner des problèmes si cet attribut est utilisé par du code tiers.<br />

Utilisation de delattr, attention aux impacts<br />

>>> import UserList<br />

>>> my_list = UserList.UserList()<br />

>>> my_list.append('t')<br />

>>> my_list<br />

['t']<br />

>>> delattr(my_list, 'data')<br />

>>> my_list.append('t')<br />

Traceback (most recent call last):<br />

File "", line 1, in ?<br />

File "/usr/lib/python2.4/UserList.py", line 73, in append<br />

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

AttributeError: UserList instance has no attribute 'data'<br />

Cette méthode est rarement utilisée dans le cadre d’un programme classique. Seules<br />

les bibliothèques qui modifient en bas niveau le fonctionnement de certaines classes<br />

de Python en ont l’usage. Les tests unitaires peuvent aussi s’en servir pour modifier<br />

temporairement certains mécanismes. Si votre programme utilise cette fonction dans<br />

un cadre classique, c’est en général un problème d’architecture et un refactoring peut<br />

s’avérer nécessaire.<br />

Voir aussi : setattr, hasattr et getattr.<br />

dir : dir([objet]) -> liste d’attributs<br />

Renvoie une liste des attributs de l’objet. Si l’objet n’est pas fourni, renvoie les attributs<br />

disponibles dans le contexte d’exécution. Les attributs du contexte sont par<br />

exemple tous les modules préalablement importés.<br />

Les attributs renvoyés lorsqu’un objet est fourni sont :<br />

pour les objets de type classe ou type : les attributs et tous les attributs des types de<br />

base ;

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

Saved successfully!

Ooh no, something went wrong!