Skip to content

Aide mémoire Python3 : Les modules

Posted in GNU/Linux

Les modules permettent de séparer et de réutiliser le code.

  1. Écrivons un module : En règle générale, plusieurs fonctions vont être écrites dans un fichier. Ce fichier pourra ensuite être appelé dans un autre code. Cela permet donc de séparer le code en le rendant plus lisible mais aussi de réutiliser plus facilement des partie de code.
    Dans le fichier multiplications.py intégrons le code suivant :

    # Module d'affichage des tables de multiplication
    #Fournit les multiples de nbr jusqu'à 100 
    def table(nbr):
         for v,m in {int(x/nbr): xfor x in range(100) if x % nbr == 0}.items():
               print(str(v) + ' * ' + str(nbr) + ' = ' + str(m)) 
    
    #Fournit les 10 premiers multiples de nbr 
    def table10(nbr):
         val=nbr*10+1
         for v,m in {int(x/nbr): x for x in range(val) if x % nbr == 0}.items():
             print(str(v) + ' * ' + str(nbr) + ' = ' + str(m))
  2. Chemin d’accès : Une fois le module écrit, nous allons pouvoir l’utiliser en l’important dans du code. Mais pour cela il va falloir déclarer son chemin d’accès.
    Pour cela on peut soit modifier la variable d’environnement PYTHONPATH.
    La sémantique utlisée est la même que pour le PATH :

    bouba@pyrbur:~/travail/python$ export PYTHONPATH=$PYTHONPATH:/home/bouba/travail/python

    Dans un shell on peut aussi ajouter le chemin à la liste sys.path :

     
    >> import sys
    >> sys.path.append("/home/mon/repertoire")
    
  3. Importer le module : Dans le code nous allons pouvoir importer le module pour accéder aux méthodes qu’il contient
     
    >> import multiplications
    >> multiplications.table(13)
    0 * 13 = 0
    1 * 13 = 13
    2 * 13 = 26
    3 * 13 = 39
    4 * 13 = 52
    5 * 13 = 65
    6 * 13 = 78
    7 * 13 = 91
    
    >> multiplications.table10(13)
    0 * 13 = 0
    1 * 13 = 13
    2 * 13 = 26
    3 * 13 = 39
    4 * 13 = 52
    5 * 13 = 65
    6 * 13 = 78
    7 * 13 = 91
    8 * 13 = 104
    9 * 13 = 117
    10 * 13 = 130
    

    On peut aussi importer directement la méthode “table” ce qui permet de l’utiliser directement :

     
    >> from multiplications import table
    >> table(16)
    0 * 16 = 0
    1 * 16 = 16
    2 * 16 = 32
    3 * 16 = 48
    4 * 16 = 64
    5 * 16 = 80
    6 * 16 = 96
    
    
  4. Utilisation d'un module sous forme de script : C'est bien beau de pouvoir appeler son module, mais dans certain cas c'est aussi utile de l'appeler directement sous forme de script. On souhaite donc pouvoir exécuter une ligne de commande qui nous fournit la table de multiplication d'un nombre en tapant la ligne de commande suivante :
     
    $ python multiplications.py 12 
    

    Pour cela il nous faut ajouter un petit bout de code à la fin du script.

    if __name__ == "__main__":     import sys     table10(int(sys.argv[1]))