Chapitre 14 : Création de modules

         1 – Création

    Vous pouvez créez votres propres modules très simplement en Python. Il vous suffit d’écrire un ensemble de fonctions (et/ou de variables) dans un fichier, puis d’enregistrer celui-ci avec une extension .py (comme n’importe quel script Python). À titre d’exemple, voici le contenu du module message.py.

Code python

«  » »Module inutile qui affiche des messages 🙂
«  » »

def Bonjour(nom):
«  » »Affiche bonjour !
«  » »
return « bonjour  » + nom

def Ciao(nom):
«  » »Affiche ciao !
«  » »
return « ciao  » + nom

def Hello(nom):
«  » »Affiche hello !
«  » »
return « hello  » + nom +  » ! »

date=16092008

         2 – Utilisation

    Pour appeler une fonction ou une variable de ce module, il faut que le fichier message.py soit dans le répertoire courant (dans lequel on travaille) ou bien dans un répertoire indiqué par la variable d’environnement Unix PYTHONPATH. Ensuite, il suffit d’importer le module et toutes ses fonctions (et variables) vous sont alors accessibles.

La première fois qu’un module est importé, Python crée un fichier avec une extension .pyc (ici message.pyc) qui contient le bytecode (code précompilé) du module.

L’appel du module se fait avec la commande import message. Notez que le fichier est bien enregistré avec une extension .py et pourtant on ne la précise pas lorsqu’on importe le module. Ensuite on peut utiliser les fonctions comme avec un module classique.

Code python

>>> import message
>>> message.Hello(« Joe »)
‘hello Joe !’
>>> message.Ciao(« Bill »)
‘ciao Bill’
>>> message.Bonjour(« Monsieur »)
‘bonjour Monsieur’
>>> message.date
16092008
Les commentaires (entre triple guillemets) situés en début de module et sous chaque fonction permettent de fournir de l’aide invoquée ensuite par la commande help() :

Code python

>>> help(message)
NAME
message – Module inutile qui affiche des messages 🙂

FILE
/home/cumin/poulain/message.py

FUNCTIONS
Hello(nom)
Affiche hello !

Bonjour(nom)
Affiche bonjour !

Ciao(nom)
Affiche ciao !

DATA
date = 16092008
Remarques :

Les fonctions dans un module peuvent s’appeler les unes les autres.
Les fonctions dans un module peuvent appeler des fonctions situées dans un autre module s’il a été préalablement importé avec la commande import.
Vous voyez que les modules sont d’une simplicité enfantine à créer. Si vous avez des fonctions que vous serez amenés à utiliser souvent, n’hésitez plus !

         3 – Exercices : extraction des gènes d’un fichier genbank

    Conseil : pour cet exercice, écrivez un script dans un fichier, puis exécutez-le dans un shell.

Reprenez l’ensemble des fonctions qui gèrent le traitement de séquences nucléiques et incluez-les dans un module adn.py. Testez-les au fur et à mesure.