Fichier=open('monfichier.txt','w') >>> fichier.write('bonjour\n') 8 >>> liste ['le chien', 'le chat', 'le loup'] >>> for s in liste: fichier.write(s+'\n')

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

1 Quelques précisions sur l'héritage. 2 Signification de super.f() appel à la méthode f() masquée super : désigne l'objet appelant comme s'il était de.
Plan du cours La sérialisation: – comment stocker et restaurer les Objets? Les interfaces graphiques et la programmation évènementielle. –Comment concevoir.
Objectifs Présentation et utilisation du langage PERL
Programmation Orientée Objet (POO)
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Jérôme CUTRONA PHP objet Jérôme CUTRONA 01:08:01 Programmation Web
Introduction à la POO: Les classes vs les objets
Chapitre III Héritage (début)
Principes de programmation (suite)
Programmation orientée objet
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Principes de programmation (suite)
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
C++ : classes Introduction aux Langages Orientés Objets
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
Python La programmation objet
FICHIERS : Définition : Algorithme général:
Fichiers et entrées / sorties Sauvegarde des programmes dans des fichiers. Compilation. Lecture et écriture de données dans des fichiers. Formatage des.
Structures de données IFT-2000
Structures de données IFT-10541
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
SEANCE 10 Python Entrée et sortie de fichiers Lycée Louis Vincent Lundi 20 janvier
Introduction au paradigme orienté-objet (suite)
CSI2520, Hiver 2007 Python Un langage de programmation par scripting et plus…
Chapitre 9 Les sous-programmes.
COURS DE PROGRAMMATION ORIENTEE OBJET :
INF1101 Algorithmes et structures de données
Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,
Structures de données IFT-2000 Abder Alikacem Concepts orientés objet Édition Septembre 2009 Département dinformatique et de génie logiciel Département.
PHP & My SQL.
Travaux Pratiques Représentation des connaissances
La notion de type revisitée en POO
11/04/ L'héritage Cours 7 Cours 7.
Programmation objet La base.
Introduction à Visual Studio C++ (VC++)
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 1 – Objets et Classes Master 1 SIGLIS1Java Lecteur - Chapitre 1 Objets et classes.
© 2005 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java Peter Van Roy Département d’Ingénierie Informatique, UCL
Introduction à la programmation objet en C++
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
PHP 7° PARTIE : PROGRAMMATION OBJET
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
Réaliser par: Sadok Amel Cheboui hassiba
PHP objet Jérôme CUTRONA 10:13:27 Programmation Web
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
CSI2520 Un langage de programmation par scripting orienté-objet (et fonctionnel)
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
Les classes Introduction aux Langages Orientés Objets
PHP5 objet "avancé" Jérôme CUTRONA 09:56:48 Programmation Web
1 PHP 5 Notions fondamentales (niveau 1 cours #4) Formation continue – Cégep de Sainte-Foy.
La programmation par objets Principes et concepts Etude de Smalltalk.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Héritage Conception par Objet et programmation Java
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Nouvelles Technologies Internet & Mobile
Introduction à la Programmation Orientée Objet
1 PHP 5 Notions fondamentales (niveau 1 cours #3) Formation continue – Cégep de Sainte-Foy François G Couillard.
Diagramme de Composants
Langage de Programmation Orientée Objet : C++
Conception de Programmes - IUT de Paris - 1ère année Les classes Introduction Déclaration d’une classe Utilisation d’une classe Définition des.
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
JAVA et l'orientation objet Jean-Jacques LE COZ. Encapsulation L'encapsulation est le concept de masquer l'implémentation de la classe De ne permettre.
FACTORY systemes Module 6 Section 1 Page 6-3 Les ActiveX FORMATION INTOUCH 7.0.
Transcription de la présentation:

fichier=open('monfichier.txt','w') >>> fichier.write('bonjour\n') 8 >>> liste ['le chien', 'le chat', 'le loup'] >>> for s in liste: fichier.write(s+'\n') 9 8 >>> fichier.close() >>> fichier=open('monfichier.txt','r') >>> fichier.readline() 'bonjour\n' >>> for ligne in fichier: ligne.replace('\n','!') 'le chien!' 'le chat!' 'le loup!' >>> fichier.close()

>>> contacts={'robert':123,'jean':567,'paul':646} >>> fichier=open('contacts.pkl','wb') >>> import pickle >>> pickle.dump(contacts,fichier) >>> fichier.close() >>> fichier=open('contacts.pkl','rb') >>> c=pickle.load(fichier) >>> fichier.close() >>> c {'jean': 567, 'robert': 123, 'paul': 646}

 JSON est un standard simple pour la sauvegarde d’information >>> steph={"prenom":"Stephen","nom":"Harper"} >>> steph {'nom': 'Harper', 'prenom': 'Stephen'} >>> justin={"prenom":"Justin","nom":"Trudeau"} >>> tom={"prenom":"Thomas","nom":"Mulcair"} >>> e1={"id":123,"employe":steph,"fonction":"developpeur","supervise":[456,987]} >>> e2={"id":456,"employe":justin,"fonction":"secretaire","supervise":[222]} >>> e3={"id":987,"employe":tom,"fonction":"testeur","supervise":[]} >>> liste=[e1,e2,e3] >>> import json >>> json.dump(liste,fp=open('monjson.txt','w'),indent=4)

>>> print(open('monjson.txt').read()) [ { "employe": { "nom": "Harper", "prenom": "Stephen" }, "id": 123, "supervise": [ 456, 987 ], "fonction": "developpeur" }, { "employe": { "nom": "Trudeau", "prenom": "Justin" }, "id": 456, "supervise": [ 222 ], "fonction": "secretaire" }, { "employe": { "nom": "Mulcair", "prenom": "Thomas" }, "id": 987, "supervise": [], "fonction": "testeur" } ]

>>> d=json.loads(open('monjson.txt').read()) >>> d [{'id': 123, 'employe': {'nom': 'Harper', 'prenom': 'Stephen'}, 'supervise': [456, 987], 'fonction': 'developpeur'}, {'id': 456, 'employe': {'nom': 'Trudeau', 'prenom': 'Justin'}, 'supervise': [222], 'fonction': 'secretaire'}, {'id': 987, 'employe': {'nom': 'Mulcair', 'prenom': 'Thomas'}, 'supervise': [], 'fonction': 'testeur'}] >>> d[0] {'id': 123, 'employe': {'nom': 'Harper', 'prenom': 'Stephen'}, 'supervise': [456, 987], 'fonction': 'developpeur'} >>> d[0]['id'] 123 >>>

 La classe est l’entité regroupant propriétés et comportements des objets ◦ Encapsulation:  attributs et méthodes sont associés à la classe  En Python, l’encapsulation se fait en créant des portées associées à chaque objet  Un objet définit un espace de nom ◦ Cachage de l’information:  l’utilisateur de la classe n’a accès qu’à l’interface publique d’une classe; la mécanique interne est cachée et les attributs ne sont pas accessibles directement  Python ne permet pas de définir une visibilité privée pour les attributs  La convention est que les variables débutant par un _ ou __ ne devrait pas être modifiées par l’utilisateur de la classe  En fait, dans la classe abc, l’attribut __xyz deviendra _abc__xyz

 L’énoncé class créé un objet de type classe et lui associe un nom ◦ La définition existe seulement lorsque l’énoncé est exécuté  Une affectation dans une classe créé un attribut de classe  La définition d’une fonction dans une classe créé une méthode  Le mot-clé self permet de définir des attributs associé à chaque objet  L’appel à un objet de classe en tant que fonction va créer une instance de cette classe (un objet)

>>> class MaClasse: attributDeClasse=8 def setData(self,valeur): self.data=valeur def affiche(self): print(self.data,MaClasse.attributDeClasse ) >>> MaClasse.attributDeClasse 8 >>> x=MaClasse() >>> x.setData(99) >>> x.affiche() 99 8 >>> y=MaClasse() >>> y.setData(27) >>> y.affiche() 27 8 >>> x.affiche() 99 8 >>> MaClasse.attributDeClasse=11 >>> x.affiche() >>> y.affiche() >>> x.extra=8 >>> x.data=77 >>> x.affiche() 77 11

 L’énoncé __init__ permet de définir ce qui se passe lorsqu’un objet est inititialisé  En général, les énoncés encadrés de __ ont une signification spéciale ◦ __str__ permet de définir la conversion vers une chaine de caractères ◦ __repr__ agit comme __str__ mais est plus général (mais moins prioritaire) ◦ Cette notation est aussi utilisée pour la surcharge d’opérateurs  __add__ définit le + pour les objets de cette classe

>>> class CompteDeBanque: def __init__(self,nom): self.nom=nom self.solde=0 def depot(self,montant): self.solde+=montant def __repr__(self): return 'Compte de %s: $%d' %(self.nom,self.solde) >>> r=CompteDeBanque('Robert') >>> r.depot(100) >>> r.depot(10) >>> print(r) Compte de Robert: $110 >>> r Compte de Robert: $110

 L’héritage est un mécanisme essentiel pour la programmation orientée objet ◦ La spécialisation est le concept permettant de créé des sous-classes à une classe  Et de leur donner de nouveaux comportements, de nouvelles propriétés ◦ Réciproquement pour la généralisation  La sous-classe hérite des propriétés et des comportements de la super-classe ◦ Les attributs et méthodes de la super-classes sont accessibles à la sous-classe ◦ Une super-classe sans attributs sera une interface

 Les super-classes d’une classe sont spécifiées à l’intérieur de la paranthèse de définition >>> class CompteCheque(CompteDeBanque): def __init__(self,nom): # super(). __init__(self,nom) aussi possible CompteDeBanque.__init__(self,nom) self.frais=1 def depot(self,montant): self.solde+=montant-self.frais >>> m=CompteCheque('Marie') >>> m.depot(200) >>> print(m) Compte de Marie: $199

 La composition est le fait d’inclure des objets d’une classe dans les attributs d’une autre classe ◦ Si l’objet inclus survit à la destruction de l’objet qui le contient, on parle alors d’agrégation >>> class CompteDeBanque: def __init__(self,prenom,nom): self.nom=Personne(prenom,nom) self.solde=0 def depot(self,montant): self.solde+=montant def __repr__(self): return 'Compte de %s: $%d' %(self.nom,self.solde) >>> r=CompteDeBanque('Maurice','Richard') >>> r.depot(100) >>> r Compte de Maurice Richard: $100 >>> class Personne: def __init__(self,prenom,nom): self.prenom=prenom self.nom=nom def __str__(self): return self.prenom + ' ' + self.nom