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.

206<br />

Éléments du langage<br />

DEUXIÈME PARTIE<br />

Classes<br />

Cette organisation simplifie grandement l’écriture et la compréhension des clauses<br />

d’importation, qui ont tendance à représenter un nombre conséquent de lignes quand<br />

le code grossit. Par exemple, toute les classes d’un objet concernant les connexions vers<br />

des bases de données peuvent être regroupées dans un module nommé bdaccess.<br />

À RETENIR Les parties privées, protégées et publiques d’une classe en Python<br />

Avant de présenter les conventions de nommage pour les classes, il est nécessaire de faire un rapide<br />

résumé des différents niveaux de visibilité des méthodes et attributs d’une classe.<br />

Contrairement à la plupart des langages objet, le langage Python ne définit pas de sections privées, protégées<br />

ou publiques.<br />

Ces distinctions sont laissées à la charge du développeur qui doit utiliser une convention particulière qui<br />

consiste à préfixer d’un espace souligné le nom des méthodes et des attributs protégés, et de deux espaces<br />

soulignés ceux destinés à être privés.<br />

Le chapitre 14 couvre plus en détail la programmation orientée objet.<br />

Les noms des classes sont toujours en CapitalizedWords, et préfixés si nécessaire d’un ou<br />

deux espaces soulignés. Le choix d’un nom de classe doit être le plus descriptif possible<br />

et si possible avoir une racine commune au nom de la classe parente s’il y a héritage.<br />

B.A.-BA Nommage de classes<br />

Prenons l’exemple d’un ensemble de classes destinées à gérer des flux de données. Une classe de base<br />

définit une certaine abstraction du fonctionnement des flux et une classe dérivée implémente cette abstraction<br />

pour des flux RSS. Les noms pourraient être :<br />

BaseDataStream<br />

RSSDataStream<br />

Fonctions et variables globales d’un module, méthodes et attributs<br />

d’une classe<br />

Les fonctions et variables globales d’un module sont en lowercase_words, et préfixées<br />

si nécessaire d’un espace souligné. De même, les méthodes et attributs d’une classe<br />

doivent être en lowercase_words, et préfixés si nécessaire d’un ou deux espaces soulignés.<br />

Cette convention prévaut dans la plupart des cas, mais certains frameworks<br />

comme Zope préconisent une autre convention pour le nommage des méthodes, qui<br />

a tendance à être de plus en plus pratiquée : le mixedCase.

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

Saved successfully!

Ooh no, something went wrong!