D'un z à l'autre, la partie privée peut changer complètement, sans affecter la partie publique. 109 0 obj Toujours préférer "import" sur "from ... import", car dans la seconde méthode on va mélanger les fonctions et variables du module avec celle de l'espace courant --> dangereux, sauf si on s'y prend bien en préfixant tout --> autant faire "import". Elle est totalement absente du Pascal standard. endobj (Introduction) endstream A Python Book 1 Part 1 ­­ Beginning Python 1.1 Introductions Etc Introductions Practical matters: restrooms, breakroom, lunch and break times, etc. >> La version finale est la version stable = débuggée et figée. (H\351ritage simple) Il consiste a définir des briques logicielles appelées objets. --> Tout est normal, a et f() résident dans l'espace de nom riri. (\137\137gt\137\137\(\)) On peut ajouter des attributs et des méthodes dynamiquement (= au runtime) à une classe ou à une instance. 142 Cours Langage JAVA En PDF à Télécharger. Pour gérer les versions avec plusieurs programmeurs, on utilise des outils tels que svn, git, Google code, etc. avec l'instruction pass qui ne fait rien def rien(): print ("Ma vitesse est de " + v + " km/h"), TypeError: afficher_vitesse() takes exactly 1 argument (0 given), File "", line 2, in afficher_vitesse, TypeError: cannot concatenate 'str' and 'int' objects, --> Le passage de paramètres est bon, mais on a mal concaténé (chaîne + entier), --> C'est une erreur dans la fonction ; on ne la voit que à l'appel, - Passer une chaîne en paramètre >>> afficher_vitesse ("dix") Ma vitesse est de dix km/h. /Length 15 << Starting the Python interactive interpreter. 114 0 obj Cours Poo C Partie 1 Classes Et Objets — Cours Python. return _bar        # on aurait pu la déclarer globale par prudence, Chaque fonction publique doit être documentée. - 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. Sommaire 1 POO,ClassesetObjets 2 Conceptiond’uneclasse 3 Créationd’objets 4 Destructiond’objets 5 Lesobjetsconstants 6 Attributsetméthodes ThierryVaira (BTS SN-IR Avignon) La POO … --> 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. Comme afficher_vitesse a été inséré dans l'espace de nom courant, on ne préfixe pas pour y accéder. endstream >> endobj /ProcSet [ /PDF ] Ce cours est destiné à un usage strictement personnel, le fichier est de format pdf de niveau Intermédiaire , … --> les modules ou packages sont souvent proposés en deux versions, la version stable et la version de développement. 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 ! endobj - On appelle portée (ou visibilité) des variables, les endroits du programm où l'on peut accéder aux variables. 57 0 obj endobj --> utilise la fonction printf du C ("print Formatté") ; %d est remplacé par le premier entier dans le tuple (v). Cour Python en pdf avec explications et exercices corrigés. 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. << /S /GoTo /D (Outline0.2.5.44) >> endobj En fait les principes de base de la POO sont assez faciles à apprendre. 69 0 obj (\137\137del\137\137\(\)) Lorsqu'on écrit un module ou un package (= un répertoire de modules) dans le but de le distribuer ou le réutiliser, il faut définir une API, c'est-à-dire fixer la façon dont un programmeur va s'en servir. /BBox [0 0 5669.291 8] << /S /GoTo /D (Outline0.2.4.36) >> >> endobj endobj << /S /GoTo /D (Outline0.2.8.54) >> >>> truc.x() fct publique >>> truc._y() fct privée, --> ce n'est pas vraiment une protection, mais une indication au programmeur. # Module vitesse.py - E. Thiel - 21/03/2012, - Utilisation (quitter et relancer python), NameError: name 'afficher_vitesse' is not defined. 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 () Chaque objet représente quelque chose et a un comportement : il sait communiquer, interagir avec d'autres objets, etc. stream /BBox [0 0 362.835 3.985] << /S /GoTo /D [139 0 R /Fit] >> x���P(�� �� endobj The Python interpreter is easily extended with new functions and data types implemented in C or C++ (or other languages callable from C). endobj endobj endobj Il y a énormément de notions liées à la POO ; on va simplifier au maximum et ne voir que quelques éléments : en effet, Python est un langage orienté objets et de nombreux modules (dont le module unittest) utilisent ce style de programmation --> il faut avoir ces quelques notions de POO pour les utiliser. 26 0 obj endobj Pour rajouter une méthode à une instance il faut faire : >>> import types, ['__doc ', '__module__', 'b', 'f', 'g', 'i']    # inchangé, ['__doc__', '__module__', 'b', 'c', 'f', 'g', 'h', 'i'] >>> a.g(). endobj Turtlenécessitel’installationdetk-inker:apt install python-tkouapt install pyton3-tk Applicationdirecteducours 1. /Resources 141 0 R Une variable de type classe s'appelle une instance de la classe ; déclarer une telle variable s'appelle "instancier la classe". endobj . endobj 77 0 obj 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. /Resources 143 0 R endobj << /S /GoTo /D (Outline0.2.2.22) >> --> en déclarant c globale, l'affectation ne créera pas de variable dans l'espace de nom de la fct, mais utilisera la variable de l'espace global. 110 0 obj << << /S /GoTo /D (Outline0.9) >> endobj Support de cours à télécharger gratuitement sur Initiation à la POO avec le langage Java de categorie Java. Les classes en python. << /S /GoTo /D (Outline0.4.2.106) >> 29 0 obj /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] >> >> Une version béta est une version distribuable, mais pas encore stable et qu'il ne faut pas l'utiliser en production. Un espace de nom est un dictionnaire dans lequel sont stockées les noms de variables, de fonctions, etc. 46 0 obj Les attributs s'appellent aussi les "variables d'instance" de la classe. --> b est défini dans l'espace local de la fonction ; il est détruit. Lors d'une modification, une fonction peut (temporairement) ne plus obéir aux spécifications : on parle alors de régression. examen c++ corrigé pdf. << /S /GoTo /D (Outline0.8.3.154) >> Example#32 - Méthodes pour lister les paquets PHP 5 supplémentaires Example# - Exemple avec numfmt_get_text_attribute, style POO /Filter /FlateDecode 17 0 obj --> c'est bien l'affectation qui crée la variable. Elle est suivie d'une ligne vide, puis d'un texte libre. 42 0 obj - Pendant la refactorisation de code, ils garantissent que la nouvelle version se comporte comme lZancienne. --> l'adjectif "global" rend une variable globale au module, pas au programme ! 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. 58 0 obj Cet article suppose une connaissance de base de la syntaxe Python. endobj Attention : Ce cours n’en est pas vraiment un. 81 0 obj Example#32 – Méthodes pour lister les paquets PHP 5 supplémentaires Example# – Exemple avec numfmt_get_text_attribute, style POO Example# – Retourne le thread actuellement en cours d’ exécution. /Matrix [1 0 0 1 0 0] Help on instance of MaClasse in module __main__: Attention : dans une définition de classe, - hors méthode, toute affectation crée un attribut, - dans une méthode, les attributs sont préfixés par self, --> toute affectation de self.x crée l'attribut x. 102 0 obj Un exemple en Java ! 38 0 obj 41 0 obj 117 0 obj endobj /Filter /FlateDecode Les paramètres optionnels doivent être déclarés après les paramètres obligatoires. endobj sys.path)? RQ: on peut renommer une fonction à l'import : >>> from vitesse import afficher_vitesse as affi >>> affi(50). P. Fuchs, P. Poulain, « Cours de Python » sur Developpez.com G. Swinnen, « Apprendre à programmer avec Python » sur Developpez.com « Python », Cours interactif sur Codecademy POLLS (KDnuggets) Data Mining / Analytics Tools Used Python, 4ème en 2015 endobj 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. << /S /GoTo /D (Outline0.6.3.127) >> (G\351n\351ricit\351) - Comment renvoyer une valeur ? 18 0 obj endobj 125 0 obj endobj << /S /GoTo /D (Outline0.10) >> (Classe et m\351thode abstraites) /Length 15 avec return, def nom_de_la_fonction ( paramètres ) : corps_de_la_fonction return valeur. 121 0 obj Une classe est une structure de données qui implémente un objet. Si une méthode de la fille veut appeler une méthode de la mère, elle peut préfixer par le nom de la classe Mère en cas d'ambiguité. Cet usage est néanmoins utile dans certaines situations. Les modules sont cherchés dans une liste ordonnée de répertoires : >>> import sys, - Pourquoi écrire du code exécutable dans un module (hors test __main__) ? exercice poo php. On appelle encore un répertoire de modules un "package" ; c'est une collection de modules. 49 0 obj Il faut distinguer les fonctions et variables qui, - peuvent être manipulées par le programmeur : la partie publique. << /S /GoTo /D (Outline0.6.2.125) >> endobj Initiation à la POO avec le langage Java. << /S /GoTo /D (Outline0.2.6.48) >> 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. 134 0 obj 14 0 obj /Resources 145 0 R En général on choisit une numérotation x.y.z : - le x est un changement général d'architecture, - pour x.y donné, on garantit que la partie publique est inchangée. /Matrix [1 0 0 1 0 0] endobj Une release candidate (rc) est une version presque finale, dans laquelle on ne change plus rien, on corrige les derniers bugs. Il y a énormément de notions liées à la POO ; on va simplifier au maximum et ne voir que quelques éléments : en effet, Python est un langage orienté objets et de nombreux modules (dont le module unittest) utilisent ce style de programmation --> il faut avoir ces quelques notions de POO pour les utiliser. �%��y� /�av�"�>�?�l���i�N2���&����q�p�qT�ye�=3,?lL�Z/�O�����C���C�T�5ZVtL���@����'M?���i��t���d��S�N��N�^��:t�.K[}6;�3�Jצ~F���Sj��?2v";��SƊ��X�RK�Eb�'R3�aT�\3��F"��ц�d[u�C%����� 97 0 obj Lorsqu'on crée une instance, une fonction d'initialisation des variables d'instance est automatiquement appelée : c'est le "constructeur". (ici "vitesse."). --> On peut donc importer des modules sans crainte de faire des erreurs si - on importe le module 2 fois (a importe b et c, b importe c) - on fait des imports cycliques (a importe b qui importe a), . Si on l'ajoute à la classe, toutes les instances le reçoivent aussi. Déclarer un constructeur : def __init__(self): self.i = 33. - Setter et getter. ou encore, print ("Ma vitesse est de %d km/h" % (v)). endobj DAWAN assure des formations Python : Formation Python, formations Python à Nantes, à Paris, à Lyon, à Lille, à Aix en Provence, à Bordeaux, à Rennes, à Montpellier, à Toulouse, à Strasbourg, DIF Python Ex : class Fille(Mere): def __init__(self): Mere.__init__(self). /ProcSet [ /PDF ] Il suffit alors de lancer les tests pour trouver les éventuelles régressions. /Matrix [1 0 0 1 0 0] 50 0 obj << /S /GoTo /D (Outline0.2.7.51) >> Ce fichier est accessible gratuitement. 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 :. Exercice : Moralité : éviter au maximum les variables globales et tout passer en paramètres pour éviter des "effets de bord", c-à-d des erreurs de portées de variables. endobj << /S /GoTo /D (Outline0.8.2.152) >> Programme de la séance ... POO en Python - il charge le fichier .pyc (contient du bytecode python). 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. exercice corrige poo python pdf. Petits Diables Ancienne Parisienne Partie Au Bout De La. endobj stream 101 0 obj /Type /XObject >> Il faut les écrire très "tôt", avant même le code des fonctions ! --> str() est elle-même une fonction, qui accepte un paramètre, et qui renvoie une valeur (de type chaîne). Nous réaliserons ensemble un programme qui fera dire à des personnages de dessin animé des citations de San Antonio. exercice corrigé c++ tableau. On peut mettre return n'importe où et plusieurs fois ; return provoque le retour immédiat de la fonction. /ProcSet [ /PDF ] La programmation orientée objet repose sur le concept d’objets qui sont des entités qui vont pouvoir posséder un ensemble de variables et de fonctions qui leur sont propres. Classes et objets (révision) " Méthodes et variables, constructeurs, contrôle d’accès, constructeurs Héritage: liaison dynamique et typage Cours d’Informatique Scientifique Programmation en Python Cours 7/8 Laurent Pointal laurent.pointal @ limsi.fr @ laposte.net Source des illustrations: OpenClipArt.org et créations personnelles. La nouvelle classe hérite des attributs et méthodes de la classe mère. (Setter) endobj endobj examen c corrige pdf. 10 0 obj 137 0 obj Il est donc primordial de numéroter les versions pour s'y retrouver. endobj /FormType 1 endobj endobj Cours de Python Débutant Description : Ce cours a été conçu à l’origine pour les étudiants débutants en programmation Python des filières de biologie et de biochimie, cours en PDF. - 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(). Dans ce cours vous découvrirez toutes les bases de Python, un langage simple et facile à apprendre qui est utilisé dans la robotique, le big data et le web de manière plus générale. endobj 53 0 obj Il consulte d'abord la liste des modules chargés (sys.modules) pour voir si le module est déjà chargé. Par exemple, pour objets de type list >>> nombres = [3, 1, 2] 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 << /S /GoTo /D (Outline0.3.1.82) >> (Conventions) 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 La première ligne commence par une maj puis fini par un point. --> 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. /Matrix [1 0 0 1 0 0] /Length 1065 stream Lorsque l'on importe un module, python crée un nouvel espace de noms portant le nom du module ; tout est importé dans cet espace de noms. /BBox [0 0 8 8] Écrireunprogramme carre.py quitraceuncarré. On peut cumuler les 2 imports (ça ira dans 2 espaces de noms différents, donc pas de conflits). << 6) Programmation orientée objet (POO) et Classes. Il peut également fonctionner sous de nombreux systèmes d’exploitation et est doté d’une communauté active. Les objets groupent des données et des méthodes (fonctions) logiquement liées. - il crée un nouvel objet module vide (en gros, un dictionnaire), - il insère cet objet module dans sys.modules. 61 0 obj (Surcharge) Chaque fonction obéit à des spécifications = décrivent ce que la fonction fait, ce qui rentre et ce qui sort ; la façon de le faire n'est pas décrite dans les spec (boîte noire). (H\351ritage) 82 0 obj endstream Il faut écrire des batteries de tests pour chaque fonction, surtout avec des langages de typage dynamique comme python. << /S /GoTo /D (Outline0.7) >> << - si le module n'a pas été compilé, il le compile et l'enregistre dans le fichier nom_du_modume.pyc ; si ce fichier existe déjà mais qu'il est plus vieux que le module, il est recompilé. --> a est défini dans l'espace global ; la fonction y a accès en consultation. 147 0 obj El lenguaje C++ y el lenguaje Java popularizaron su uso, especialmente, porque la POO se utiliza frecuentemente para hacer los entornos gráficos de los programas (GUIs).• Python es un lenguaje primariamente orientado a objetos, ya que en este todas las entidades son objetos.4 Vocabulario • Un objeto es una realización de una clase. endobj - 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. Introduction: " programmation objet pourquoi?Comment? x���P(�� �� --> python convertit chaque paramètre en str, puis les concatène en rajoutant un espace entre chaque str. endobj << Dans le cas des répertoires, ils doivent contenir un fichier __init__.py qui inclut les autres fichiers du répertoire : __all__ = ["bu", "zo"] # pour aider Python lors d'un "from ga import *", import ga            |             from ga import *. 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. endobj On appelle ces tests des "tests unitaires". 86 0 obj 113 0 obj Et je vous promets que ça va être fun ! 126 0 obj endobj (property\(\)) P Cours langage Python en PDF à télécharger Il est destiné à un usage strictement personnel. (Deleter) En fait, del() ne détruit pas x, elle décrémente le nombre de références sur l'objet. /Shading << /Sh << /ShadingType 2 /ColorSpace /DeviceRGB /Domain [0 1] /Coords [0 0.0 0 3.9851] /Function << /FunctionType 2 /Domain [0 1] /C0 [1 1 1] /C1 [0.5 0.5 0.5] /N 1 >> /Extend [false false] >> >> endobj (Red\351finition) - lorsqu'on écrit du code en équipe, on se partage les tâches, le code et les tests. /Subtype /Form - découper le problème en modules et fcts = "approche descendante", - écrire des fcts et modules puis les assembler = "approche ascendante". x��WKs�6��W��H x@Ou�Tqg2���!�A�i���i���]�/��[;�T3���o_ �ɖp���#)@ - Avant dZécrire le code, ils obligent a préciser le détail des spécification dZune manière utile. Cours Python — Introduction à la programmation objet en Python Exemple introductif Les robots Utilisation de la classe Robot en Python (fichier exemple_robot.py) 1 from robot import Robot 2 3 r1 = Robot(4, 10, ’est’) 4 r1.afficher(prefix=’r1 = ’) 5 r2 = Robot(15, 7, ’sud’) endobj 45 0 obj On peut mettre des explications en commentaires avant la fonction, mais c'est encore mieux d'utiliser le mécanisme de documentation intégrée à Python : les docstring, Cette fonction prend en argument un nombre x ; Elle renvoie le carré de x.""" (It\351rateur) endobj Ce tutoriel est l'introduction à la POO que j'aurais aimé avoir à l'époque. endobj Les "import" et "from .. import" ne sont pas équivalents. (Polymorphisme) << /S /GoTo /D (Outline0.5) >> << /S /GoTo /D (Outline0.6.1.123) >> endobj 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. %PDF-1.5 RQ: on peut changer l'ordre en donnant les noms à l'appel : >>> vitesse_est_depassee (vmax=60,v=50) False. On peut fabriquer une classe à partir d'une autre : c'est l'héritage. endobj ☝ modules et packages cherchés dans le python path (cf. Envoyé le : 2018-12-02 19:13:57: Taille : 1.64 Mo: Téléchargement : 6262 AttributeError: Mere instance has no attribute 'j', AttributeError: Mere instance has no attribute 'h'. 105 0 obj (Introspection) /FormType 1 Le nom d'un module est accessible avec __name__ dans son propre espace de noms : def afficher_nom_module(): print (__name__), >>> vitesse.afficher_nom_module() vitesse, >>> vitesse.__name__                # c'est pareil.