Un module est une classe ou ensemble de classe qui sera spécifiquement utilisé comme ressources dans d'autres programmes. Il a en général été conçu comme tel et s'avère très pratique lors de tâches répétitives.
La règle veut que les modules portent le même nom que la classe qu'ils contiennent. Ainsi MaClasse.py serait le nom de module courant pour le fichier contenant la classe MaClasse. Bien sûr, le module pouvant en contenir plusieurs, cette règle est adaptable.
Au niveau du fichier contenant les classes il est fréquent d'ajouter une condition de test d'exécution (en général en fin de fichier) :
if __name__ == "__main__" pass # autres instructions au lieu de pass
Le but de cette condition est de définir ce qui doit être exécuté si le module est exécuté comme corps principal du programme, sinon, cette partie est simplement ignorée.
#!/usr/bin/env python # -*- coding: utf-8 -*- class MaClasse: def __init__(self, nom): self.essai="Bonjour" self.nom=nom def affiche(self): print self.essai, self.nom class MaClasseFille(MaClasse): def affiche(self): print self.nom if __name__ == "__main__": pass
Enregistrez ce fichier avec l'extension .py
Une fois votre module créé, vous pourrez alors l'importer pour le réutiliser dans tous vos projets :
import MaClasse objet = MaClasse.MaClasseFille("cedric") objet.affiche()
Commentons un peu ce qui se passe ici :
La méthode import va charger l'ensemble du fichier en vue de son exploitation ultérieure.
from param_classe import MaClasseFille objet = MaClasseFille("Cedric") objet.affiche() > Cedric
Si le gain ici n'est pas très important à cause de la simplicité de notre fichier module, remarquez qu'avec cette façon de faire, il n'est pas nécessaire de nommer le module lors de l'instanciation. Si cela a l'avantage de faire saisir un peu moins de texte, si vous devez charger plusieurs modules, il faudra être certain qu'il n'y aura pas de conflit dans le nom des classes et méthodes utilisées, problème qui est résolu avec l'utilisation d'import seul et la préservation de son espace de nom.
Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.
Vous devriez rafraîchir la page.