Les modules en Python
Sommaire
- 1- Objectifs
- 2- Introduction
- 3- Importation de modules
- 3.1- Première méthode
- 3.2- Deuxième méthode
- 3.3- Renommer les modules et les attributs lors de leur importation
- 3.4- Première méthode
- 3.5- Deuxième méthode
- 4- Connaitre les méthodes ou variables associées à un objet
- 5- Définir des fonctions dans un module
- 6- Variables globales dans les modules Python
- 6.1.1- Sommaire du cours Python
Les modules en Python
-
Objectifs
- Etre capable d’importer des modules python
-
Introduction
- La programmation orientée objet convient particulièrement bien au développement d’applications avec interface graphique.
- Il est vivement conseillé de développer ses applications Tkinter en utilisant une classe.
- Cela présente l’avantage d’encapsuler l’application de manière efficace et d’éviter ainsi l’utilisation de variables globales. Souvenez-vous, elles sont à bannir définitivement ! Une classe crée un espace de noms propre à votre application, et toutes les variables nécessaires seront ainsi des attributs de cette classe.
- Un module est un fichier contenant des définitions et des instructions Python. Le nom de fichier est le nom du module avec le suffixe .py ajouté.
- Il existe un grand nombre de modules pré-programmés qui sont fournis d’office avec Python. Vous pouvez en trouver d’autres chez divers fournisseurs.
- Souvent on essaie de regrouper dans un même module des ensembles de fonctions apparentées, que l’on appelle des bibliothèques.
-
Importation de modules
-
Première méthode
- Le module math, par exemple, contient les définitions de nombreuses fonctions mathématiques telles que sinus, cosinus, tangente, racine carrée, etc. Pour pouvoir utiliser ces fonctions, il vous suffit d’incorporer la ligne suivante au début de votre script :
from math import *
- Cette ligne indique à Python qu’il lui faut inclure dans le programme courant toutes les fonctions (c’est là la signification du symbole "joker"
*
) du module math, lequel contient une bibliothèque de fonctions mathématiques pré-programmées. - l’utilisation de la syntaxe
import module
permet d’importer tout une série de fonctions organisées par "thèmes". Par exemple, les fonctions gérant les nombres aléatoires avec random et les fonctions mathématiques avec math. - Python possède de nombreux autres modules internes (c’est-à-dire présent de base lorsqu’on installe Python).
-
Deuxième méthode
- Il existe un autre moyen d’importer une ou plusieurs fonctions d’un module :
- À l’aide du mot-clé
from
, on peut importer une fonction spécifique d’un module donné. Remarquez bien qu’il est inutile de répéter le nom du module dans ce cas, seul le nom de la fonction en question est requis. - L’instruction
from random import *
importe toutes les fonctions du module random. On peut ainsi utiliser toutes ses fonctions directement, comme par exempleshuffle()
qui permute une liste aléatoirement. - nous vous conseillons de charger le module seul de la manière suivante :
import random
- puis d’appeler explicitement les fonctions voulues, par exemple :
random.randint(0,2)
-
Renommer les modules et les attributs lors de leur importation
-
Première méthode
-
Deuxième méthode
-
Connaitre les méthodes ou variables associées à un objet
- pour connaître d’un seul coup d’œil toutes les méthodes ou variables associées à un objet, utilisez la fonction
dir()
: - Pour la liste complète de modules que vous serez probablement amenés à utiliser si vous programmez en Python, reportez-vous à la page des modules sur le site de Python :
- L’utilisation
dir()
sans aucun argument montre ce qu’il y a dans l’espace de noms global. Pour voir le contenu de l’espace math de noms, vous utilisezdir(math)
. -
Définir des fonctions dans un module
- Très souvent, c’est une personne qui définit une fonction et une autre qui l’utilise.
- Par exemple, avec la bibliothèque math, on peut utiliser la fonction pow() pour retourner une valeur x y (x à la puissance y) sans avoir à écrire nous-mêmes cette fonction.
- Nous allons donc voir à présent comment définir des fonctions dans un module et faire en sorte qu’un utilisateur puisse appeler ces fonctions dans son programme.
- Par exemple, nous allons créer un fichier nommé puissance.py qui va définir 2 fonctions : carre() et cube(). Un tel fichier est appelé un module et il va pouvoir être importé dans un autre fichier, et en particulier dans le fichier qui contient le programme principal.
- Il est maintenant possible d’utiliser dans un programme principal les fonctions qui ont été définies dans le module puissance.py. Pour cela, il faut importer les fonctions à partir du module.
- Exemples:
- On importe une seule fonction
- On importe explicitement les deux fonctions
- On importe toutes les fonctions
- On importe le module
- On importe le module et on lui donne un alias
- On importe une fonction d’un module et on lui donne un alias
-
Variables globales dans les modules Python
- En Python, nous créons un module unique
config.py
pour contenir des variables globales et partager des informations entre les modules Python au sein du même programme. - Voici comment nous pouvons partager des variables globales entre les modules python.
- Partager une variable globale entre les modules Python
- Créer un fichier
config.py
, pour stocker des variables globales - Créer un fichier
update.py
, pour modifier les variables globales - Créer un fichier
main.py
, pour tester les changements de valeur - Lorsque nous exécutons le fichier main.py, la sortie sera
- Dans ce qui précède, nous avons créé trois fichiers: config.py, update.py et main.py.
- Le module config.py stocke les variables globales de a et b. Dans le fichier update.py, nous importons le module config.py et modifions les valeurs de a et b.
- De même, dans le fichier main.py, nous importons à la fois le moduleconfig.py et update.py.
from random import randint
randint(0,10)
import math as m
import math as m
m.pi
3.141592653589793
from math import pi as PI
from math import pi as PI
PI
3.141592653589793
def carre(valeur):
resultat = valeur**2
return resultat
def cube(valeur):
resultat = valeur**3
return resultat
from puissance import carre
a = 5
u = carre(a)
print("le carre vaut", u)
a = 5
u = carre(a)
print("le carre vaut", u)
v = cube(a)
print("le cube vaut", v)
from puissance import *
a = 5
u = carre(a)
print("le carre vaut", u)
v = cube(a)
print("le cube vaut", v)
import puissance
a = 5
u = puissance.carre(a)
print("le carre vaut", u)
v = puissance.cube(a)
print("le cube vaut", v)
Dans ce cas, il faut préciser le nom du module devant la fonction.
import puissance as pu
a = 5
u = pu.carre(a)
print("le carre vaut", u)
v = pu.cube(a)
print("le cube vaut", v)
from puissance import carre as ca
a = 5
u = ca(a)
print("le carre vaut", u)
L’importation de toutes les fonctions avec * est fortement déconseillée. En effet, elle ne permet pas d’avoir une vision claire des fonctions qui ont été importées. Ceci est donc une source potentielle d’erreurs.
Source:https://courspython.com
a = 0
b = "empty"
import config
config.a = 10
config.b = "alphabet"
import config
import update
print(config.a)
print(config.b)
10
alphabet