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.

<strong>Programmation</strong> orientée objet<br />

CHAPITRE 14<br />

Les méthodes et données internes sont dites privées et celles faisant partie de l’interface<br />

de la classe dites publiques. Dans certains langages, une visibilité intermédiaire<br />

permet de définir que des attributs ne sont visibles que des sous-classes. On parle<br />

alors d’attributs protégés.<br />

Certains langages objet, comme le C++, définissent de manière stricte cette visibilité<br />

en fournissant des mots-clés pour caractériser chaque élément d’une classe.<br />

Python fonctionne quant à lui sur un modèle moins strict, basé sur des conventions<br />

de nommage des attributs : un attribut privé est toujours préfixé de deux espaces soulignés<br />

et un attribut protégé d’un seul espace souligné.<br />

À RETENIR Attributs privés et protégés<br />

En langage Python, les attributs privés sont définis en préfixant leur nom de deux espaces soulignés et<br />

les attributs protégés d’un seul espace souligné :<br />

__attr1, __attr2 # noms d’attributs privés<br />

_attr3, _attr4 # noms d’attributs protégés<br />

L’interpréteur protège les attributs privés en les préfixant en interne du nom de la<br />

classe, les rendant inaccessibles par du code extérieur. Cette protection n’est cependant<br />

pas inviolable puisqu’il est possible d’accéder à tous les éléments en fouillant<br />

l’attribut __dict__. Mais là n’est pas l’objectif.<br />

Enfin, les méthodes protégées sont accessibles tout à fait normalement et le préfixe a<br />

pour seul objectif d’informer sur leur nature.<br />

Telephone<br />

#!/usr/bin/python<br />

# -*- coding: utf8 -*class<br />

Telephone(object):<br />

def __init__(self):<br />

# données privées<br />

self.__numero_serie = '123NouzironAuBois456DesCerises'<br />

# données protégées<br />

self._code_pin = '1234'<br />

# données publiques<br />

self.modele ='nokai kitu 45'<br />

self.numero ='06 06 06 06 06'<br />

# méthodes protégées<br />

def _chercherReseau(self):<br />

print('Réseau FSR, bienvenue dans un monde meilleur..')<br />

491

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

Saved successfully!

Ooh no, something went wrong!