endobj (H\351ritage simple) ', Help on function carre in module __main__: carre(x), Cette fonction prend en argument un nombre x ; Elle renvoie le carré de x. >> Pour ajouter une méthode, il faut d'abord créer la fonction : >>> A.g = ggg # rajoute la méthode g à la classe et à toules les instances, ['__doc__', '__module__', 'b', 'f', 'g', 'i'], Attention ! endobj endstream %���� << /S /GoTo /D (Outline0.12) >> to Python Part 3: Object-Oriented Programming Advantages of OOP OOP is optional What You Will Learn De ning and Using Classes A Closer Look Variables Name Lookup Objects and Variables Variables References Names In Python, every variable is a reference to an object (i.e. Desmeulles Gireg Cours + Laboratoire desmeulles@enib.fr Polceanu Mihai Laboratoire polceanu@enib.fr S eances de cours et de laboratoire Les enseignements d’informatique S4-POO de l’ENIB sont dispens es lors de 21h de s eances de coursTD et de s eances de laboratoire :. examen c++ corrigé pdf. endobj endobj Cet article suppose une connaissance de base de la syntaxe Python. Le but de ce cours est de comprendre ce qu’est Python, ce que Python permet de réaliser et d’explorer ses différentes fonctionnalités et de vous apprendre à les utiliser pas à pas. 33 0 obj endobj 3) Découpage d'un programme en modules, - Dès qu'un programme a une certaine taille, on le découpe en plusieurs modules pour, - structurer le programme, en regroupant ce qui va ensemble. --> On a importé a et f() dans l'espace global du module __main__ ; or f() voit la variable globale au module riri qui est différente. /ProcSet [ /PDF ] La programmation orientée objet (ou POO en abrégé) correspond à une autre manière d’imaginer, de construire et d’organiser son code. (\137\137repr\137\137\(\)) endobj << /S /GoTo /D (Outline0.8) >> Traceback (most recent call last): File "", line 1, in ImportError: No module named py, --> Il faut dire que la fonction est dans le module ; >>> vitesse.afficher_vitesse(50) Ma vitesse est de 50 km/h. - elle contient des données, que l'on appelle des attributs ; - elle contient des fonctions sachant manipuler les données, on les appelle des méthodes. 125 0 obj - il execute le module dans son espace de nom. (H\351ritage multiple) 65 0 obj x���P(�� �� Comme afficher_vitesse a été inséré dans l'espace de nom courant, on ne préfixe pas pour y accéder. 78 0 obj (\137\137gt\137\137\(\)) On considère que dans l'interpréteur on est aussi dans un module : le "module principal", dans lequel on accède directement à l'espace de nom principal sans préfixer. >> 42 0 obj 61 0 obj 137 0 obj - ou convertir systématiquement le paramètre en chaîne : def afficher_vitesse (v) : print ("Ma vitesse est de " + str(v) + " km/h"), >>> afficher_vitesse ("dix") Ma vitesse est de dix km/h >>> afficher_vitesse (10) Ma vitesse est de 10 km/h >>> afficher_vitesse (10.5) Ma vitesse est de 10.5 km/h. (property\(\)) << /S /GoTo /D (Outline0.8.2.152) >> Une variable de type classe s'appelle une instance de la classe ; déclarer une telle variable s'appelle "instancier la classe". /Shading << /Sh << /ShadingType 3 /ColorSpace /DeviceRGB /Domain [0 1] /Coords [4.00005 4.00005 0.0 4.00005 4.00005 4.00005] /Function << /FunctionType 2 /Domain [0 1] /C0 [0.5 0.5 0.5] /C1 [1 1 1] /N 1 >> /Extend [true false] >> >> endobj endobj << /S /GoTo /D (Outline0.2.3.28) >> Un module python peut contenir plusieurs classes (contrairement à Java). En fait les principes de base de la POO sont assez faciles à apprendre. Le but de cette page est de présenter un peu le fonctionnement des classes en python. (ici "vitesse."). endobj Algo Prog Objet Python Author: Andrea G. B. Tettamanzi Subject: Transparents des CM du cours Algo Prog Objet Python Keywords: L2, Algorithmes, Programmation, Structures de données Created Date: 10/3/2017 9:56:24 AM RQ: comment faire une fonction vide ? Une classe est une structure de données qui implémente un objet. /Subtype /Form --> str() est elle-même une fonction, qui accepte un paramètre, et qui renvoie une valeur (de type chaîne). endobj - Les attributs et les méthodes peuvent être publiques ou privées (on les préfixe avec _). /Subtype /Form endobj On s'en servira dans la suite. 142 Cours Langage JAVA En PDF à Télécharger. —Python convient aussi bien à des scripts d’une dizaine de lignes qu’à des projets com- plexes de plusieurs dizaines de milliers de lignes. - le z est une numérotation concernant la partie privée. endobj 26 0 obj Utilisation d'une fonction renvoyant une valeur : - dans une expression comme dans l'exemple avec str() - dans un test de branchement ou de boucle : def tester_vitesse (v, vmax): if vitesse_est_depassee(v,vmax): On peut rendre des paramètres de fonctions optionnels ; pour cela il suffit de les pré-initialiser dans la déclaration. Il faut écrire des batteries de tests pour chaque fonction, surtout avec des langages de typage dynamique comme python. Les attributs s'appellent aussi les "variables d'instance" de la classe. - Pendant la refactorisation de code, ils garantissent que la nouvelle version se comporte comme lZancienne. De plus, certaines variables ne peuvent pas être modifiées sans conséquence pour les autres données du module : seul le module "sait" comment peuvent évoluer ses variables. /Shading << /Sh << /ShadingType 3 /ColorSpace /DeviceRGB /Domain [0.0 8.00009] /Coords [8.00009 8.00009 0.0 8.00009 8.00009 8.00009] /Function << /FunctionType 3 /Domain [0.0 8.00009] /Functions [ << /FunctionType 2 /Domain [0.0 8.00009] /C0 [0.5 0.5 0.5] /C1 [0.5 0.5 0.5] /N 1 >> << /FunctionType 2 /Domain [0.0 8.00009] /C0 [0.5 0.5 0.5] /C1 [1 1 1] /N 1 >> ] /Bounds [ 4.00005] /Encode [0 1 0 1] >> /Extend [true false] >> >> On commence souvent avec x = 0, cela signifie au le logiciel est en version alpha, et que tout peut changer très vite. 86 0 obj << /S /GoTo /D (Outline0.4.1.105) >> Support de cours à télécharger gratuitement sur Initiation à la POO avec le langage Java de categorie Java. endobj Classes et objets (révision) " Méthodes et variables, constructeurs, contrôle d’accès, constructeurs Héritage: liaison dynamique et typage --> On voit aussi que l'instanciation d'une classe ne déclenche pas le constructeur de la classe mère ; il faut l'appeler explicitement. 144 0 obj endobj endobj Avec la notion d'objet, il convient d'amener la notion de classe.Cette notion de classe n'est apparue dans le langage Pascal qu'avec l'avènement du langage Delphi et de sa nouvelle approche de la Programmation Orientée Objet. (Classe et m\351thode abstraites) print ("x = %d y = %d z = %d t = %d" % (x, y, z, t)), TypeError: essai() takes at least 2 arguments (1 given). 66 0 obj /Filter /FlateDecode Il est destiné à un usage strictement personnel. 105 0 obj 34 0 obj 50 0 obj Also, IPython and Idle. << /S /GoTo /D (Outline0.8.3.154) >> _x = 1 # attribut privé def getx(self): return self._x, x = propertÿ(getx, setx, delx, "Je suis la propriété 'x'. En effet, c’est une procédure fournie par Yann A. 69 0 obj En fait, del() ne détruit pas x, elle décrémente le nombre de références sur l'objet. P Cours langage Python en PDF à télécharger /Length 15 Développons En Java POO Avec Java Jmdoudoux Fr. << /S /GoTo /D (Outline0.3) >> ou encore, print ("Ma vitesse est de %d km/h" % (v)). les tableaux en c exercices corriges pdf. Par exemple, pour objets de type list >>> nombres = [3, 1, 2] endobj /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [0.0 8.00009] /Coords [0 0.0 0 8.00009] /Function << /FunctionType 3 /Domain [0.0 8.00009] /Functions [ << /FunctionType 2 /Domain [0.0 8.00009] /C0 [1 1 1] /C1 [0.5 0.5 0.5] /N 1 >> << /FunctionType 2 /Domain [0.0 8.00009] /C0 [0.5 0.5 0.5] /C1 [0.5 0.5 0.5] /N 1 >> ] /Bounds [ 4.00005] /Encode [0 1 0 1] >> /Extend [false false] >> >> - les modules de votre programme (fichiers .py) ; - les "bibliothèques dynamiques" = DLL de suffixe .pyd sur Windows, .so sous linux, .dylib sous MacOS. - il charge le fichier .pyc (contient du bytecode python). RQ: on peut renommer une fonction à l'import : >>> from vitesse import afficher_vitesse as affi >>> affi(50). - Python recherche les variables dans différents espaces de noms : - d'abord dans l'espace local (de la fonction), On peut voir les globales et locales en appelant les fcts : globals(). >>> truc.x() fct publique >>> truc._y() fct privée, --> ce n'est pas vraiment une protection, mais une indication au programmeur. endobj 93 0 obj /FormType 1 sys.path)? Découvrez comment utiliser les constructeurs, l’héritage et le polymorphisme à l’aide de la programmation orienté objet sous Python ! stream On appelle ces tests des "tests unitaires". endobj 97 0 obj << /S /GoTo /D (Outline0.6.3.127) >> >> 133 0 obj La première ligne commence par une maj puis fini par un point. endobj 102 0 obj endobj Il consiste a définir des briques logicielles appelées objets. << /S /GoTo /D (Outline0.2.8.54) >> - En mode interactif, des que l'on quitte python, les fcts que l'on a tapées sont perdues. Lorsque ce nombre passe à 0, l'instance est détruite : >>> x = Toto()   #             1             ref, >>> y = x             #             2             refs, >>> del(x)          #             1             ref, >>> del(y)          #             0             ref. /Length 15 Il faut distinguer les fonctions et variables qui, - peuvent être manipulées par le programmeur : la partie publique. endobj Il est donc primordial de numéroter les versions pour s'y retrouver. TP Initiation à la POO - Programmation orientée objet en Python TP 1 TP Initiation à la POO - Programmation orientée objet en Python Présentation La programmation orientée objet nest pas un langage procédural ou séquentiel comme, par exemple, le Flowcode. 21 0 obj endobj --> python convertit chaque paramètre en str, puis les concatène en rajoutant un espace entre chaque str. Un espace de nom est un dictionnaire dans lequel sont stockées les noms de variables, de fonctions, etc. dès la sortie de la fonction ; b n'est pas accessible dans l'espace global. exercice corrige c classe. Lorsqu'on crée une instance, une fonction d'initialisation des variables d'instance est automatiquement appelée : c'est le "constructeur". 101 0 obj << /S /GoTo /D (Outline0.6) >> endobj On a vu que les variables d'un module sont globales aux module mais que il vaut mieux éviter de les modifier de l'extérieur (c-a-d d'un autre module, de __main__ ou de l'interpréteur). endobj --> On a passé plusieurs paramètres : séparés par des virgules ; affectés dans l'ordre. endobj POO-L3 H. Fauconnier 2 Plan du cours ! (Deleter) Téléchargez ou consultez le cours en ligne Programmation avec le langage Python, tutoriel PDF gratuit par Xavier Dupré en 190 pages.. Ce cours est de niveau Débutant et taille 709.47 Ko. endobj 143 0 obj endobj (Introspection) endstream C'est pourquoi le module doit fournir des fonctions spécilisées qui modifient ou renvoient les valeurs de ces variables : on les appelle les setter et les getter. 'Calcule le carr\xc3\xa9 de x.\n\n            Cette fonction prend en argument, un nombre x ;\n              Elle renvoie le carr\xc3\xa9 de x. endobj 151 0 obj --> dans h(), affecter c crée une variable dans l'espace de nom de la fct ; cette variable "masque" alors la variable c de l'espace global. Ce que l'on a pu nommer jusqu'à présent objet est, pour Delphi, une classe d'objet. Petits Diables Ancienne Parisienne Partie Au Bout De La. /BBox [0 0 16 16] << /S /GoTo /D (Outline0.1) >> �dDh8�3IV���N�I�2��nȧ�����Z��� �m�-��ţ޷*��i��B�y��uY�X���YPa�E^�\�4Vzf"�g��0��a��3yN�_˃���9�Ȑ (Setter) (\137\137getitem\137\137\(\)) /Subtype /Form A Python Book 1 Part 1 ­­ Beginning Python 1.1 Introductions Etc Introductions Practical matters: restrooms, breakroom, lunch and break times, etc. x���P(�� �� Autre essai pour vérifier : --> l'import "from import" fait donc bien une recopie ; il interdit donc la modification des variables globales du module depuis un autre module ! --> a est défini dans l'espace global ; la fonction y a accès en consultation. endobj (\137\137eq\137\137\(\)) /Resources 143 0 R endobj stream Bienvenue dans ce cours traitant d’un des langages de programmation les plus célèbres et les plus plébiscités : Python. - Pendant la maintenance du code, ils permettent dZêtre couvert si quelquZun se plaint que votre dernière modification fait planter son code. x���P(�� �� 114 0 obj 94 0 obj (\137\137init\137\137\(\)) /Matrix [1 0 0 1 0 0] /BBox [0 0 5669.291 8] << << /S /GoTo /D (Outline0.2.5.44) >> Python Remarques Par defaut, toute classe en´ Python a un constructeur par defaut´ sans parametre` Pour simplifier la creation d’objets, on peut d´ efinir un nouveau´ constructeur qui prend en parametre plusieurs attributs de la` classe Les constructeurs avec Python On le declare avec le mot-cl´ e´ init ()