Plan du cours Introduction ` a la programmation Orient´ ee Objet Avec le langag
Plan du cours Introduction ` a la programmation Orient´ ee Objet Avec le langage Python Saber EL AREM ENSAM ParisTech November 22, 2021 1 Introduction 2 Programmation proc´ edurale 3 Programmation Orient´ ee Objet 4 Les op´ erateurs 5 Encapsulation: droits d’acc` es Saber EL AREM Plan du cours ENSAM ParisTech 1 / 86 Introduction Bibliographie Ces 3 ouvrages sont disponibles gratuitement Saber EL AREM ENSAM ParisTech 2 / 86 Introduction Programmation Organisation de la deuxi` eme partie Deuxi` eme partie: Programmation 1 5 s´ eances de 1 heure 20 minutes 2 1 TP de 3 heures 3 ´ Evaluation : TP (coef. 25%) un test de 10 ` a 15 minutes ` a la fin de chaque partie (coef. 10%) Test de 1 heure (coef. 65%) Saber EL AREM Programmation ENSAM ParisTech 3 / 86 Introduction Programmation La programmation consiste ` a ´ ecrire des s´ equences d’instructions dans un langage compr´ ehensible par les humains, tel que Python, Java, C ... Ces instructions seront finalement traduites en instructions ´ el´ ementaires directement ex´ ecutables par le microprocesseur de l’ordinateur. Pour r´ ealiser cette traduction, un programme en langage Python, r´ edig´ e dans des fichiers .py, doit ˆ etre traduit en une repr´ esentation interm´ ediaire ind´ ependante de l’ordinateur : le bytecode. C’est ce que l’on appelle la phase de compilation. Les instructions en bytecode sont ensuite interpr´ et´ ees par un programme appel´ e machine virtuelle qui les traduit en instructions pour le microprocesseur. Saber EL AREM Programmation ENSAM ParisTech 4 / 86 Introduction Programmation Compilation implicite en bytecode Un aspect important de la compilation du code Python en bytecode est qu’elle est enti` erement implicite. On n’invoque jamais un compilateur, on ex´ ecute simplement un fichier .py. C’est diff´ erent du langage Java, par exemple, o` u on doit ex´ ecuter le compilateur Java pour transformer le code source en bytecode. Saber EL AREM Programmation ENSAM ParisTech 5 / 86 Introduction Programmation Compil´ e ou interpr´ et´ e ? Pour cette raison, Java est souvent appel´ e un langage compil´ e, tandis que Python est appel´ e un langage interpr´ et´ e. Mais les deux langages compilent en bytecode, puis tous deux ex´ ecutent le bytecode avec une impl´ ementation logicielle d’une machine virtuelle. Saber EL AREM Programmation ENSAM ParisTech 6 / 86 Introduction Programmation Les ´ etapes de la programmation 1 R´ efl´ echir ` a la tˆ ache que l’ordinateur devra ex´ ecuter et sa description sous forme de s´ equence d’instructions . 2 Traduire cette s´ equence d’instructions en un programme Python et enregistrer le avec l’extention .py. 3 Ex´ ecuter le programme .py : la compilation en bytecode est implicite en Python. Saber EL AREM Programmation ENSAM ParisTech 7 / 86 Introduction Programmation proc´ edurale Programmation proc´ edurale ou imp´ erative Nous abordons aujourd’hui un volet tr` es important: POO: la Programmation Orient´ ee Objet. Il s’agit d’une fa¸ con particuli` ere de programmer qui n’est d’ailleurs pas sp´ ecifique au langage Python et qui va donner ` a vos programmes un certain nombre de propri´ et´ es int´ eressantes en terme de maintenabilit´ e et de modularit´ e. Saber EL AREM Programmation proc´ edurale ENSAM ParisTech 8 / 86 Introduction Programmation proc´ edurale Programmation proc´ edurale ou imp´ erative A ce stade du cours, vous ˆ etes cens´ es connaˆ ıtre un certain nombre d’´ el´ ements fondamentaux relatifs ` a la programmation. Vous savez, par exemple, exprimer des traitements en utilisant des structures de contrˆ oles, comme par exemple, des boucles. Vous savez aussi structurer vos donn´ ees en utilisant par exemple des listes, des tuples, des dictionnaires Vous savez modulariser vos programmes en utilisant la notion centrale de fonction Saber EL AREM Programmation proc´ edurale ENSAM ParisTech 9 / 86 Introduction Programmation proc´ edurale Programmation proc´ edurale ou imp´ erative Vous savez, par exemple, exprimer des traitements en utilisant des structures de contrˆ oles, comme par exemple, des boucles. Vous savez aussi structurer vos donn´ ees en utilisant par exemple des listes, des tuples, des dictionnaires Vous savez modulariser vos programmes en utilisant la notion centrale de fonction Cet outillage de base va vous permettre d’exercer un style de programmation particulier dit programmation proc´ edurale ou imp´ erative Saber EL AREM Programmation proc´ edurale ENSAM ParisTech 10 / 86 Introduction Programmation proc´ edurale Programmation proc´ edurale ou imp´ erative Cet outillage de base va vous permettre d’exercer un style de programmation particulier dit programmation proc´ edurale ou imp´ erative Saber EL AREM Programmation proc´ edurale ENSAM ParisTech 11 / 86 Introduction Programmation proc´ edurale Programmation proc´ edurale ou imp´ erative Ce style a la particularit´ e de faire en sorte que les donn´ ees et les traitements apparaissent de fa¸ con s´ epar´ ee dans un programme. Saber EL AREM Programmation proc´ edurale ENSAM ParisTech 12 / 86 Programmation proc´ edurale Caract´ eristiques Programmation proc´ edurale ou imp´ erative Ce style a la particularit´ e de faire en sorte que les donn´ ees et les traitements apparaissent de fa¸ con s´ epar´ ee dans un programme. Par exemple les traitements peuvent s’exprimer par le biais des fonctions. Et le lien entre donn´ ees et traitement peut se faire alors par le biais du passage des arguments. 1 Longueur = 2.0 Largeur = 1.0 3 def surface(Longueur ,Largeur): ’’’ retourne la surface d’un rectangle 5 de dimensions Longueur X Largeur ’’’ return Longueur*Largeur Saber EL AREM Caract´ eristiques ENSAM ParisTech 13 / 86 Programmation proc´ edurale Caract´ eristiques Programmation proc´ edurale ou imp´ erative Ce style a la particularit´ e de faire en sorte que les donn´ ees et les traitements apparaissent de fa¸ con s´ epar´ ee dans un programme. Les donn´ ees manipul´ ees apparaissent au travers d’entit´ es distinctes, comme par exemple, des variables. Saber EL AREM Caract´ eristiques ENSAM ParisTech 14 / 86 Programmation proc´ edurale Caract´ eristiques Programmation proc´ edurale ou imp´ erative Longueur = 2.0 2 Largeur = 1.0 def surface(Longueur ,Largeur): 4 ’’’ retourne la surface d’un rectangle de dimensions Longueur X Largeur ’’’ 6 return Longueur*Largeur Une des critiques fondamentales, que l’on peut ´ emettre sur ce genre de programme, est l’absence de lien s´ emantique entre les diff´ erentes entit´ es. Par exemple, le lien s´ emantique qui unit la largeur et la longueur, il s’agit de la largeur et de la longueur d’un mˆ eme rectangle, est difficile ` a ´ etablir Saber EL AREM Caract´ eristiques ENSAM ParisTech 15 / 86 Programmation proc´ edurale Points faibles Programmation proc´ edurale ou imp´ erative Une des critiques fondamentales que l’on peut ´ emettre sur ce genre de programme, est l’absence de lien s´ emantique entre les diff´ erentes entit´ es. Par exemple, le lien s´ emantique qui unit la largeur et la longueur, il s’agit de la largeur et de la longueur d’un mˆ eme rectangle, est difficile ` a ´ etablir Imaginons, par exemple, que je ne sois pas francophone. Donc pour moi, largeur et longueur sont des noms peu parlant. Il est difficile pour moi de voir qu’il s’agit de deux entit´ es li´ ees ` a un mˆ eme concept : celui du rectangle. Le lien s´ emantique qui unit ici, les donn´ ees entre elles, n’est pas explicite. Mais il en va de mˆ eme pour le lien qui unit les donn´ ees et le traitement qui agit sur ces donn´ ees. Saber EL AREM Points faibles ENSAM ParisTech 16 / 86 Programmation proc´ edurale Points faibles Programmation proc´ edurale ou imp´ erative On peut mˆ eme imaginer que j’appelle mes arguments x et y. Du coup, il devient tr` es difficile pour quelqu’un qui lit mon code de voir que l’on est effectivement en train de faire un calcul de surface sur un rectangle. Or, ce lien existe conceptuellement. Ici, c’est la largeur et la longueur d’un rectangle, que je suis en train de ma- nipuler. Et ici, c’est bien la surface du mˆ eme rectangle, que je souhaite calculer. Saber EL AREM Points faibles ENSAM ParisTech 17 / 86 Programmation proc´ edurale Points faibles Programmation proc´ edurale ou imp´ erative Donc le fait, de pouvoir regrouper en une seule et mˆ eme entit´ e, la notion de rectangle, les donn´ ees caract´ eristiques du rectangle, comme sa largeur et sa longueur, ainsi que les traitements qui lui sont sp´ ecifiquement associ´ es, vont me permettre d’´ etablir un lien explicite entre ces diff´ erentes entit´ es et de donner beaucoup plus de clart´ e ` a mon programme. Saber EL AREM Points faibles ENSAM ParisTech 18 / 86 Programmation Orient´ ee Objet Introduction Programmation Orient´ ee Objet En Python tout est objet >>> type (5) 2 <class ’int ’> >>> type (7.0) 4 <class ’float ’> >>> type ([1.0 , ’ENSAM ’]) 6 <class ’list ’> >>> type(’ENSAM ’) 8 <class ’str ’> >>> type ({1 ,2 ,3}) 10 <class ’set ’> >>> type ((1 ,2)) 12 <class ’tuple ’> >>> type ({’1’:+33633121212}) 14 uploads/S4/ 2021-cours-poo.pdf
Documents similaires










-
27
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 28, 2022
- Catégorie Law / Droit
- Langue French
- Taille du fichier 1.0882MB