Formation Python Modules (d'après "Learning Python", de Mark Lutz)

Slides:



Advertisements
Présentations similaires
Etudes de cas A vous de faire Bases de données DRES – B. TALON.
Advertisements

La programmation orientée objet avec Java L3-MIAGE Plan
Module Systèmes d’exploitation
Module 5 : Implémentation de l'impression
Sémantique des déclarations pour le langage Z minimal
Au programme du jour …. Introduction à lhéritage Un concept important de la programmation objet Livraison de code Organisation des répertoires et packages.
Algorithmique Résume.
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
Exposé de Système - Informatique et Réseau
(Classes prédéfinies – API Java)
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
la programmation en langage C
C.
Outils de développements
! ! ! PROCEDURE TYPE POUR ORGANISER L ’ANONYMAT
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
TP 3-4 BD21.
Nicolas Bourbaki.
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Les bases de l’Algorithmique
Principes de programmation (suite)
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
La technologie au collège et le B2i
Module 1 : Préparation de l'administration d'un serveur
Initiation à la conception de systèmes d'information
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Les instructions PHP pour l'accès à une base de données MySql
Module 6 : Gestion de données à l'aide du système de fichiers NTFS
Configuration de Windows Server 2008 Active Directory
Module 6 : Gestion de données à l'aide du système de fichiers NTFS
Introduction à la programmation (Java)
Introduction au langage PHP Réfs : Chap 3 p 49. Présentation PHP (Hypertext PreProcessor) est un langage de développement Web créé en 1994 par Rasmus.
Module 6 : Gestion du stockage des données
Module 4 : Création et gestion de comptes d'utilisateur
Création et gestion de comptes d'utilisateur
Conception de la mise en page
Module 2 : Préparation de l'analyse des performances du serveur
Module 3 : Création d'un domaine Windows 2000
Chapitre 9 Les sous-programmes.
Types de données abstrait et mécanismes d'encapsulation
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Mécanismes d'exécution et de communication
Procédures et fonctions
Modules et packages Modules, fichiers, chemin d’accès à un module, espaces de noms, importation de modules ou d’attributs de modules, packages, exemples.
Affectation (d'après "Learning Python", de Mark Lutz)
Dépannage et récupération de Windows 8
PHP & My SQL.
Le langage C Rappel Pointeurs & Allocation de mémoire.
Programmation Système et Réseau (sous Linux)
JavaScript.
TD0 - Rappels. Acquis du programme 1 ère année Analyser et modéliser : un problème, une situation ; Imaginer et concevoir : une solution algorithmique.
7ième Classe (Mardi, 24 novembre) CSI2572. Devoir 3 ?
Objectifs A la fin de ce chapitre, vous pourrez : présenter l'utilisation d'opérations de chargement de données par chemin direct décrire l'utilisation.
Créer des packages.
Les modules. Modules Un module est un ensemble de définitions de constantes, de variables et de fonctions réutilisables de projet en projet. Le langage.
Module 9 : Transfert de données. Vue d'ensemble Présentation du transfert de données Outils d'importation et d'exportation de données disponibles dans.
La programmation.
Sémantique des instructions pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Interprétation/Génération de code pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Module 3 : Création d'un domaine Windows 2000
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
1 Programmation en C++ Marianne Morris. 2 Intro générale à la programmation On a déjà étudié le langage assembleur Langage de bas niveau Meilleur que.
Initiation au JavaScript
Permet de simplifier la maintenance d’un site
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 2 – Java Premiers pas Master 1 SIGLIS1 Java Lecteur - Chapitre 2 - Java Premiers Pas.
UE MAREP Cours 12 : Révisions
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
1.1: notions de bases de l’informatique
Java Réalisé par: Mouna POKORA. PLAN: Définition : Historique: Caractéristiques: un langage orienté objet: un langage interprété : un langage portable:
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
Transcription de la présentation:

Formation Python Modules (d'après "Learning Python", de Mark Lutz)

Questions abordées Qu'est-ce qu'un module ? Différences import/from/reload ?

Définition Tout programme python peut-être décomposé en multiples modules. Chaque module est un ensemble de variables et de fonctions, stockées dans un fichier séparé. Pour utiliser les éléments d'un module donné, on doit le charger en mémoire à l'aide de l'une de ces instructions ou fonction prédéfinies : import (récupération d'un module complet) from (récupération de quelques éléments) reload (force le rechargement)

Premier import Effet de la première instruction import mod d'un processus : 1) Recherche du fichier mod.py dans sys.path : 1) répertoire original du programme 2) répertoires de PYTHONPATH 3) répertoires standards 2) Compilation, si mod.pyc n'est pas à jour. 3) Exécution de mod.pyc, en enregistrant variables et fonctions dans l'objet ainsi créé (attributs du module).

Effet de l'instruction import module1 module1.py prompt = '%' def printer(x) print prompt, x prompt = '%' def printer(x) print prompt, x import module1 module1.printer('Hello !') % Hello ! import module1 module1.printer('Hello !') % Hello ! programme principal module1 '%' printer() {prompt,printer} On accède aux éléments du module avec l'opérateur "."

Effet de l'instruction import module1 as m1 module1.py prompt = '%' def printer(x) print prompt, x prompt = '%' def printer(x) print prompt, x import module1 as m1 m1.printer('Hello !') % Hello ! import module1 as m1 m1.printer('Hello !') % Hello ! programme principal m1 '%' printer() {prompt,printer}

Effet de l'instruction from module1 import printer module1.py prompt = '%' def printer(x) print prompt, x prompt = '%' def printer(x) print prompt, x from module1 import printer printer('Hello !') % Hello ! from module1 import printer printer('Hello !') % Hello ! programme principal '%' printer() {prompt,printer} printer()

Effet de l'instruction from module1 import * module1.py prompt = '%' def printer(x) print prompt, x prompt = '%' def printer(x) print prompt, x from module1 import * printer('Hello !') % Hello ! from module1 import * printer('Hello !') % Hello ! programme principal '%' printer() {prompt,printer} printer() prompt

Import et from sont des instructions d'affectation Ils peuvent être insérés n'importe où dans le code. Ils sont interprétés à l'éxécution. Si des variables de même nom existaient, elles pointent sur les nouveaux objets créés en mémoire par from. Les variables créées peuvent être modifiées (avec mesure…).

Quizz (1/3) m = 2 … import module1 as m m prompt = '%' def printer(x) print prompt, x prompt = '%' def printer(x) print prompt, x module1.py > Hello ! m.prompt = '>' m.printer('Hello !') '%' printer() {prompt,printer} m m 2 2 '>'

Quizz (2/3) prompt = '%' def printer(x) print prompt, x prompt = '%' def printer(x) print prompt, x mod1.py prompt = '#' from mod1 import * prompt = '>' printer('Hello !') % Hello ! '%' printer() {prompt,printer} printer() prompt '#' '>'

Fonction prédéfinie reload() N'est autorisé que pour un module déjà importé. Ré-éxécute les instructions du fichier, et refait les attributs du module existant. Le code client qui utilise le nom de module verra les nouveaux objets. Le code client qui utilise des variables créées par from verra les anciens objets. import module1 as m m.prompt = '>' reload(module1) m.printer('Hello !') % Hello ! from module1 import * prompt = '>' printer('Hello !') reload(module1) printer(' import module1 as m m.prompt = '>' reload(module1) m.printer('Hello !') % Hello ! from module1 import * prompt = '>' printer('Hello !') reload(module1) printer(' programme principal prompt = '%' def printer(x) print prompt, x prompt = '%' def printer(x) print prompt, x module1.py

Résumé Lors du premier appel à import ou from, le fichier correspondant est intégralement compilé, éxécuté et chargé en mémoire. import crée une variable désignant l'ensemble du module. from duplique certaines variables dans l'espace appelant. reload force la ré-éxécution des instructions du fichier.

Quelques pièges, trucs & astuces Attention à l'instruction from, qui peut écraser des variables déjà utilisées avec celles de même nom issues du module. Attention à l'usage simultané de from et de reload. Parce qu'un nom de fichier python est appelé à être utilisé comme module de même nom, il faut suivre les règles s'appliquant aux noms de variables. Evitez print.py !

Quizz (3/3) 1 from small import x, y x = 4 y[0] = 5 import small small.x [ 2, 3 ] y reload(small) small.y [ 5, 3 ] small.y [ 5, 3 ] x = 1 y = [ 2, 3 ] x = 1 y = [ 2, 3 ] small.py y y x x 1 1 [0,1] {x,y} small [0,1]