La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Réalisé par : El Khamlichi Mohsin & Heyvaert Xavier.

Présentations similaires


Présentation au sujet: "Réalisé par : El Khamlichi Mohsin & Heyvaert Xavier."— Transcription de la présentation:

1

2 Réalisé par : El Khamlichi Mohsin & Heyvaert Xavier

3 Sommaire Chap I : ……………………………………………………….... Introduction Chap II : ……………………………………………………….. Les types intégrés Chap III : ………………………………………………………. Les instructions Chap IV : ………………………………………………………. Les Fonctions Chap V : ……………………………………………………….. Les Modules Chap VI : ………………………………………………………. Les exeptions Chap VII : ……………………………………………………… Les classes Chap VIII : ……………………………………………………... Les outils de Python

4 CHAPITRE I : INTRODUCTION

5 En 1989, Guido Van Rossum commenca à travailler sur Python qui nétait alors quun projet lui servant doccupation durant les vacances de Noël pendant lesquelles son bureau était fermé. Le but de Guido était dinventer un successeur au langage ABC, un langage daprentissage peu apprécié dans le milieu académique. Pour cela, il fit appel directement à des utilisateurs Unix habitués au langage C. il voulu que Python soit facilement utilisable dans dautres langages et environnement contrairement à ABC. Il y réussi globalement… Le nom Python donné au langage provient dune série anglaise appelée « Monty Python Flying Circus » 1. Un petit historique…

6 2. Apercu de ses caractéristiques… Gratuit Python est placé sous Général Public License. Il est facilement downloadable sur Langage Script Tout comme Perl, Tcl et Rexx, Python fait partie des langages script interpretés contairement à Java, au C/C++ qui sont des langages compilés. Ce qui lui permet dêtre plus rapide au develloppement, de comporter moins de ligne (50% de moins). Par contre, Il est plus lent à lexecution. Portable Python est portable entre les differentes variantes de Unix ainsi que sur les OS propiétaires comme Mac OS, BEOs, MS-DOS et les differentes versions de Windows

7 Extensible Au-delà de la multitude de librairies et de modules déjà existente, il est possible den dévellopper pour ses propres besoins. Modulable Python permet de séparer les programmes en modules qui peuvent être réutilisés dans d'autres programmes en Python Orienté Objet Python est orienté-objet. Il supporte l'héritage multiple et la surcharge des opérateurs. Syntaxe aisée La syntaxe de Python est très simple et, combinée à de nombreux types de données évolués (comme les listes, dictionnaires,tuples...), ce qui conduit à des programmes à la fois très compacts et très lisibles. De plus, Python ne nécessite aucune déclaration de variable. Les variables sont créées lors de leur première assignation.

8 Peu derreurs… Tout comme Java ou Ada, Python porssède un systeme dexception qui facilite la gestion des erreurs. Gestion des ressources Python gère ses ressources (mémoire, descripteurs de fichiers...) sans intervention du programmeur, par un mécanisme de comptage de références Case sensitive Une instruction par ligne

9 Scripts dadministration systemes ex : Les programmes d'administration système spécifiques à la distribution Red Hat Linux. Tous les dévelloppement lié à linternet et en particulier au web (moteur de recherche, navigateur…) ex : moteurs de recherche yahoo et infoseek Accès aux bases de donnée (contextuelle) Réalisations dinterfaces graphiques utilisateurs. Utilisation pour la résolution de calculs scientifiques ex : Python est notamment utilisé pour les fusée de la NASA … 3. Domaines dapplication

10 CHAPITRE II : LES TYPES INTEGRES

11 1. Les types numériques Tableau des différents types numériquesTableau des différents types numériques

12 Les principaux opérateurs pour les types numériques Tableau (dans un ordre de priorité croissant):

13 Quelques remarques… Lors de mélange de types numériques lors dune opération, la réponse sera du type de lopérande la plus complexe. En Python, vrai signifie nimporte quel nombre différent de zéro ou un objet non vide; faux signifie zéro, none et un objet vide (un ex.: a or b retourne le premier qui est vrai et si les 2 sont faux, retourne celui de droite (donc b)) la dernière expression affichée est affectée à la variable _. Si on affecte une valeur à cette variable, on crée une variable locale qui masquera la globale. Si nous faisons c = d (où c et d sont 2 variables), c référencera le même objet que d!!!Ainsi pour les listes, nous ferons une copie de cette manière c = d[:] et pour les dictionnaires, nous utiliserons la méthode copy, c = d.copy().

14 2. Les chaînes Déf. une chaîne: séquence de caractères non modifiable càd que si nous avons une chaîne s=dalut, on ne peut pas faire s[0]=s mais on devra faire s=s+s[1:] (une réassignation) Déclaration:Une chaîne peut être déclarée avec un simple guillemet ou un double. On utilise le triple double quotes ( … ) pour entrer une chaîne de caractère sur plusieurs lignes Rq: le type char en C est donc représenté par une chaîne de taille 1 On ne déclare donc pas la taille de la chaîne et pour connaître sa longueur on peut utiliser len( ).

15 Tableau des opérations

16 Chaînes: concaténation-répétition Exemple de concaténation >>> mot = help + a >>>mot helpa # pour la répétition: >>>mot*3 helpahelpahelpa Autre manière de faire >>> help a helpa Rq. on ne peut pas concaténer une chaîne et un nombre avec +; on doit dabord utiliser atoi() pour convertir ce nbr en string et ensuite concaténer

17 Chaînes: indiçage et extraction Représentation dune chaînes: lindiçage est le fait de sélectionner un élément de la chaîne. Un indice positif indique que lon commence à compter par la gauche et un indice négatif que lon compte depuis la droite ex : s[3] donnera e et s[-5] donnera l lextraction est le fait de sélectionner une partie de la chaîne ainsi, s[2:5] donnera nex (le 5 nest pas compris)

18 Suite: Une valeur laissée vierge prend la valeur 0 à gauche et la taille de la chaîne à droite (s[:5] => s[0:5] et s[3:] => s[3:len(s)]). Un index qui est trop grand est remplacé par la taille de la chaîne, un index de fin inférieur à lindice de début retourne une chaîne vide ( s[1:100] donnera onexemple.py et s[2:1] donnera ). Différents exemples: >>> s[-2] # les deux derniers caractères >>>py >>> s[-0] # équivalent à s[0] m >>>s[-100] # erreur

19 Remarques… Les opérateurs de comparaison in et not in vérifient si une valeur apparaît (ou non) dans une séquence. Les opérateurs is et is not vérifient si deux objets sont réellement le même objet; ceci se justifie seulement pour les objets modifiables comme les listes. Tous les opérateurs de comparaison ont la même priorité, qui est plus faible que celle de tous les opérateurs numériques. Les objets de type séquence peuvent être comparés à d'autres objets appartenant au même type de séquence. La comparaison utilise l'ordre lexicographique : les deux premiers éléments sont d'abord comparés, et s'ils diffèrent ceci détermine le résultat de la comparaison; s'ils sont égaux, les deux éléments suivants sont comparés, et ainsi de suite, jusqu'à ce que l'une des deux séquences soit épuisée.

20 3. Les listes Ont une même signification quen C: une collection dobjets. Déclaration: une liste de valeurs (ou éléments) entre crochets séparés par des virgules. Les éléments de la liste nont pas nécessairement le même type. Voici une liste de 4 éléments: >>>a = [spam, eggs,100,1234] >>>a [spam, eggs,100,1234] Comme les indices des chaînes, les indices des listes commencent à 0, et les listes peuvent étre découpées, concaténées…(rapidité!!!!) Les listes sont modifiables,on peut donc changer les éléments individuellement: remplacement, destruction,... (cest lutilité dune liste! Important lors des passages de paramètres des fonctions )

21 Tableau des opérations

22 Un exemple >>> a = ['spam', 'eggs', 100, 1234] >>> a ['spam', 'eggs', 100, 1234] >>> a[0] 'spam' >>> a[3] 1234 >>> a[-2] 100 >>> a[1:-1] ['eggs', 100] >>> a[:2] + ['bacon', 2*2] ['spam', 'eggs', 'bacon', 4] >>> 3*a[:3] + ['Boe!'] ['spam', 'eggs', 100, 'spam', 'eggs', 100, 'spam', 'eggs', 100, 'Boe!']

23 Listes imbriquées (généralisées) L = ['abc', [(1,2), ([3], 4)], 5]; ainsi, L[1] donnera [(1,2),([3],4)] et L[1][1] donnera ([3],4)

24 Les méthodes de lobjet liste Voici toutes les méthodes des objets listes: insert(i, x) –Insère un élément à une position donnée. Le premier argument est l'indice de l'élément avant lequel il faut insérer, donc a.insert(0, x) insère au début de la liste, et a.insert(len(a), x) est équivalent à a.append(x). append(x) –Equivalent à a.insert(len(a), x). index(x) –Retourne l'indice dans la liste du premier élément dont la valeur est x. Il y a erreur si cet élément n'existe pas. remove(x) –Enlève le premier élément de la liste dont la valeur est x. Il y a erreur si cet élément n'existe pas.

25 Les méthodes: suite sort() –Trie les éléments à l'intérieur de la liste. reverse() –Renverse l'ordre des éléments à l'intérieur de la liste. count(x) –Renvoie le nombre de fois que x apparaît dans la liste.

26 Exemple pour les méthodes Un exemple qui utilise toutes les méthodes des listes: >>> a = [66.6, 333, 333, 1, ] >>> print a.count(333), a.count(66.6), a.count('x') >>> a.insert(2, -1) >>> a.append(333) >>> a [66.6, 333, -1, 333, 1, , 333] >>> a.index(333) 1 >>> a.remove(333) >>> a [66.6, -1, 333, 1, , 333] >>> a.reverse() >>> a [333, , 1, 333, -1, 66.6] >>> a.sort() >>> a [-1, 1, 66.6, 333, 333, ]

27 Une fonction intégrée "filter(fonction, sequence)" renvoit une liste (du même type, si possible) contenant les seul éléments de la séquence pour lesquels fonction(element) est vraie. Par exemple, pour calculer quelques nombres premiers: >>> def f(x): returnx%2 != 0 and x%3 != 0... >>> filter(f, range(2, 25)) [5, 7, 11, 13, 17, 19, 23]

28 4. Les Tuples Déf. Comme une liste, un tuple est une collection ordonnée dobjets; mais le tuple nest pas modifiable. Déclaration: des valeurs (entre parenthèses) séparées par des virgules >>>tuple=(0,1.4,world) Pourquoi les tuples alors que nous avons les listes?? La non-possibilité de modifier les tuples assure une certaine intégrité car nous pouvons être sûr quun tuple ne sera pas modifié à travers une référence ailleurs dans le programme.

29 Tableau des opérations

30 Tuple unpacking L'instruction t = 12345, 54321, 'salut!' est un exemple d' emballage en tuple (tuple packing). L'opération inverse est aussi possible, par ex.: >>> x, y, z = t Ceci est appelé, fort judicieusement, déballage de tuple (tuple unpacking). Le déballage d'un tuple nécessite que la liste des variables à gauche ait un nombre d'éléments égal à la longueur du tuple A l'occasion, l'opération correspondante sur les listes est utile: list unpacking. Ceci est possible en insérant la liste des variables entre des crochets carrés: >>> a = ['spam', 'oeufs', 100, 1234] >>> [a1, a2, a3, a4] = a

31 5. Les Dictionnaires Déf. Un dictionnaire est un ensemble non ordonnés de couples clé:valeur avec comme contrainte que les clés soient uniques (dans un même dictionnaire). Déclaration: des couples clé:valeur séparés par des virgules et entre accolades >>> dico = {`japon' :'japan', `chine' :'china'} Un dictionnaire, à la différence des séquences qui sont indexées par un intervalle numérique (cf.liste,chaîne,tuple),est indexé par une clé qui peut être nimporte quel type non-modifiable (les chaînes,les nbrs et les tuples sils ne contiennent que des éléments non modifiables)

32 Tableau des opérations

33 Un exemple >>> tel = {'jack': 4098, 'sape': 4139} >>> tel['guido'] = 4127 >>> tel {'sape': 4139, 'guido': 4127, 'jack': 4098} >>> tel['jack'] 4098 >>> del tel['sape'] >>> tel['irv'] = 4127 >>> tel {'guido': 4127, 'irv': 4127, 'jack': 4098} >>> tel.keys() ['guido', 'irv', 'jack'] >>> tel.has_key('guido') 1

34 6. Les fichiers Tableau des opérations

35 Le module Pickle C'est un module étonnant qui peut prendre presque n'importe quel objet Python, et le convertir en une représentation sous forme de chaîne de caractères; ce processus s'appelle pickling. Reconstruire l'objet à partir de sa représentation en chaîne de caractères s'appelle unpickling. Entre pickling et unpickling, la chaîne de caractères représentant l'objet a pu avoir été enregistrée dans un fichier, ou avoir été envoyée à une machine éloignée via une connexion réseau. Si vous avez un objet x, et un objet fichier f ouvert en écriture, la voie la plus simple de ``pickler'' l'objet prend seulement une ligne de code: pickle.dump(x, f) Pour ``unpickler'' l'objet, si f est un objet fichier ouvert en lecture: x = pickle.load(f)

36 CHAPITRE III : LES INSTRUCTIONS

37 1. Le test if Linstruction IF peut comporter plusieurs tests conditionnels elif et se termine par un bloc optionnel else. Le bloc qui sera executé, sera le premier ou la condition sera vrai sinon se sera le bloc else sans condition qui sera executé. Le if sécrit de la forme suivante: if : elif :..... else: !!! ATTENTION à lindentation !!!!

38 Comme dans beaucoup dautres langages, la boucle while éxecute un bloc tant que la condition darrêt est vérifiée. La particularité de ce while est quil peut y avoir un else optionnel dont le bloc sera éxecuté lorsquon sort de la boucle while : else : 2. La Boucle While

39 Un exemple… X=0 While x<6: print « Dans le boucle while x vaut : », x x=x+1 else: print « Dans le else x vaut : »,x

40 Utilisation du break, continue, pass Ces trois instructions permettent à lutilisateur davoir un plus grand contôle de la boucle. - Comme en C, linstruction break permet de sortir de la boucle instantannément et de passer à la suite. Elle annule le passage dans la boucle else. - Listruction « continue » saute au début de la boucle la plus imbriquée. - « pass » ne fait rien du tout mais, comme on ne peut avoir une expression qui nest suivie de rien, « pass » peut être utilisé pour combler ce vide.

41 Exemple : y=0 While y<6: if y==4: break else: print « Dans la boucle while, y vaut : », y y=y+1 else: print « dans le else y vaut : », y

42 La boucle for fonctionne sur les chaînes, les listes, les tuples et dautes objets issus de classes. Elle commence par une ligne den-tête qui spécifie une cible daffectation, ainsi quun objet qui sera itéré : for in : else : Ici encore, le else est mis en fin de boucle pour la même raison que dans la boucle while vue précédemment. Le for de Python fonctionne différemment que celui du C, il affecte les objets de lélément séquence à la cible un par un. 3. La Boucle For

43 Exemple : X={« ichi »: « un », « ni »: « deux », « san »: « trois », « chi »: « quatre »} Print « Les clefs du dictionnaire sont : »,x.keys() Print « Les Valeurs du dictionnaire sont : », x.values() For i in x.keys(): print « La clef est : %s la valeur est :%s »%(i,x[i])

44 Le Range Linstruction range permet de créer une liste croissante dentiers successifs compris dans une certaine borne dépendant du nombre de paramètres de linstruction : 1 paramètre : entiers compris entre 0 et le paramètre 2 paramètres : entier compris entre param1 et param2 3 paramètres : entier compris entre parm1 et param2 et de pas param3 Ex : for i in range(10,20,2): print i Ce qui donne:

45 CHAPITRE IV : LES FONCTIONS

46 1. Définition Outre les fonctions de bases de Python, il est possible den définir de nouvelles grâce à linstruction « def ». Il faudra bien sur à nouveau veiller à lindentation car en python, il ny pas de délimiteur pour définir les scopes. format : def nom_fct (arg1,arg2,…,argn): return Lorsquon quitte la fonction valeur va directement être assignée à la fonction appelante. Elle peut être de tous type puisque il ny a pas de déclaration de type sous python.

47 2. Les arguments… La forme générale pour passer des arguments est nom_fct(arg1,arg2,…,argn) Il est possible de définir des paramètres par défaut pour un ou plusieurs arguments. Ce qui crée une fonction qui pourra être appelée avec moins darguments que ce qui a été défini. Ex: def nom_fct (arg1=0, arg2=2,…,argn =« hello world ») Les fonctions peuvent être appelées en utilisant des arguments mots-clés de la forme « motclé=valeur » Ex : def perroquet (voltage, etat=c\est du solide,action=voom): print « -- Ce perroquet ne feras pas », action, print « -- si vou le mettez sous », voltage, « volts. » print « -- Ca », etat, « ! » pourrait être appelé de lune des façons suivantes : perroquet (1000) perroquet (action = vooooooom, voltage = )

48 Toujours Les arguments… Une fonction peut être appelée avec un nombre darguments arbitraire. Il est possible de les envoyer sous deux formes différentes : Soit par dictionnaire : Définition : Def nom_fct (**arg): pass Appel : nom_fct (arg1=1, arg2=2) Soit par tuple : Définition : def nom_fct (*arg): pass Appel : nom_fct (arg1,arg2)

49 3. Les formes Lambda Suite à la demande populaire, quelques caractéristiques trouvée habituellement dans les langages de programmation fonctionnelle et dans Lisp ont été ajouté à Python. Avec le mot-clé « lambda », de petites fonctions anonymes peuvent être crées. Elles sont limitées syntaxiquement à une expression unique. Ex : f=lambda x,y,z: x+y+z f(2,3,4) ce qui donne : 9

50 CHAPITRE V : LES MODULES

51 1. Définition Un module est un fichier contenant des définitions et des instructions Python. Le nom du fichier est le nom du module auquel est ajouté le suffixe.py. Avantages: - permet de relancer un même programme sans tout réécrire (en créant éventuellement un script). - dutiliser dans plusieurs programmes une même fonction sans la réécrire dans chaque programme. Chaque module a sa propre table de symboles privée, qui est utilisée comme table de symbole globale par toutes les fonctions définies dans le module. Ainsi, l'auteur d'un module peut utiliser des variables globales dans le module sans s'inquiéter des désaccords accidentels avec les variables globales d'un utilisateur.

52 2. Les instructions L'instruction "import " importe tout le module, en exécutant le total du module. Le module est exécuté en premier avant de pouvoir travailler sur les objets.Pour utiliser ensuite le module, nous écrirons.nom. L'instruction "from" s'utilise avec "import" de la manière "from import ". Là seulement l'objet du module sera importé, le code restant du module sera aussi exécuté, mais les objets ne seront pas mémorisés et les éventuelles variables ne seront pas affectées. Si est remplacé par *, on obtient alors une copie de tous les noms définis a la racine du module.Pour utiliser ensuite nom, nous écrirons juste.

53 Rq. La grande différence entre "import " et "from import *" est que les noms ne sont pas mémorisés sur le même niveau. Le premier sera mémorisé sous le nom du module, tandis qu'avec "from" la valeur est directement visible dans la racine (car dans la table des symboles globaux; cest donc là que nous la modifions et pas dans le module!!!! Voir exemple). La fonction "reload" est en fait un fonction se trouvant dans __builtin__ (comme print), cette fonction s'exécute par "reload( )" et a pour but de recharger le module. Le code du module sera de nouveau exécuté depuis le début et les variables qui auraient pu changer seront remises à leurs valeurs d'origine. Refaire un import ne servirait à rien car le module est déjà chargé. La fonction intégrée dir() est employée pour découvrir les noms qu'un module définit. Elle renvoie une liste triée de chaînes de caractères.

54 B G L B G L B G L Scope : Le modèle LGB « module appelant » (1)from …import (2)Import copie Avec (2), il faut refaire un reload pour récupérer la valeur initiale. Avec (1), il suffit donc de refaire « from…import » pour récupérer la valeur qui na pas été modifiée dans sa table ( du module appelé) Légende: L= local, G= global, B= built-in.

55 Exemple Illustration de la remarque #contenu du module mon_module num=12 #fin du module mon_module (.py) #on est dans linvite interactive >>>from mon_module import num >>> print num 12 >>>num=24 >>>print num 24 >>>from mon_module import num #équivalent du reload >>>print num 12# ne fonctionne pas avec les types modifiables

56 CHAPITRE VI : LES EXCEPTIONS

57 1. Définition Comme en Ada ou en Java, il existe un mécanisme de contrôle des erreurs dexécution, les exeptions.Le traitement dune exception permet de passer par dessus un bout de programme. Dans Python, il existe deux types dexception : - celles présentent dans la table des exceptions de Python - celles créées par lutilisateur

58 2. Comment gérer ces exceptions ??? Il est possible décrire des programmes qui prennent en charges des exceptions spécifiques. Ex : try: print 1.0 / 0 except ZeroDivisionError: print '*** n'a pas d'inverse *** else : pass Lorsque linstruction « try » est rencontrée, on execute dabord la « clause dessai ». Si une exception se produit, le reste de la clause try est ignorée. Dans le cas contraire, on ignore la clause dexception. Si une exception se produit qui ne correspond pas à lexception dans la clause except, elle est renvoyée aux instructions « try » extérieures. Sil ny a pas de prise en charge, Python affichera un message derreur.

59 Linstruction « else » est une clause par défaut qui doit suivre toutes les clauses dexeptions. Elle permet dexecuter la suite du programme dans le cas où aucune exception ne serait survenue. Quand une exception survient, elle peut avoir une valeur associée, appelé argument de lexeption. Ex : try : spam() except NameError, x: print nom, x,non défini ce qui affichera : nom spam non défini.

60 3. Comment déclencher une exception?? Linstruction « raise » permet à lutilisateur de déclencher une exception. Par exemple : def myfunc() : raise EOFError try: myfunc() except EOFError : print « erreur di/O !! » Else : print « Et voilà »

61 4. Créer ma propre exception… Cest possible ??? Oui !!!! Il suffit daffecter une chaîne de caractères à une variable… Ex : MonErreur = « Une erreur » def mafunc() : raise MonErreur, « survenue » try : mafunc() except MonErreur, value : print « mon erreur est %s! »%value else: pass

62 5. Actions de nettoyage… Linstruction « try » contient une autre clause exceptionnelle qui permet de définir les actions de nettoyage qui doivent être éxecutées impérativement. Ex : def divise(a,b): return a/b for x in range(1.0,5.0,1.0): try: result = divise(x,x-4) print « Le résultat est %f »% result finally : print « cette ligne est exécutée quoi quil se passe » rem : La clause de finalisation est éxecutée quune exception est executée ou non..

63 CHAPITRE VII : LES CLASSES

64 1. introduction Python offre la possibilité de programmer en Orienté objet. Le mécanisme de classe en Python est un mélange des mécanismes de classes de C++ et de Modula-3. Ex : Comme en c++, tous les membres dune classe sont publics, et toutes les fonctions membres sont virtuelleS.Il ny a pas de constructeur ni de destructeur particulier. Comme en Modula-3, il ny a pas de raccourcis pour faire référence aux membres dun objet à partir de ses méthodes.

65 2. La synthaxe… La forme la plus simple de définition de classe ressemble à ceci : class Nomclasse: … Dans la pratique, les instructions à lintérieur de la définition de classe seront souvent des définitions de fonctions, mais dautres instructions sont acceptées. Lobjet classe permet deux types dopération : La réferenciation des attributs et linstanciation. La réference dattributs : Nomclasse.i où i est un attribut de Nomclasse est une réferences dattribut valide. Linstanciation(création dune instance (objet) Nomclasse): x=Nomclasse() affecte la nouvelle instance à la variable x

66 3. A lintérieur de la classe… On trouve deux types dattributs : -données (idem que les données membre en C) -Les méthodes (idem que fonction membre en C) 1)Les données Les données nont pas besoin dêtre déclarée; Comme les variable locale, elles apparaissent lorsquon leur affecte une valeur la première fois. ex : class MaClasse : def f(x): print « hello World » i= x= MaClasse() x.compteur = 1 #creation de lattribut compteur

67 2) Les méthodes Une méthode est appelée comme en C++ : x.f() Vous avez surement remarqué que la fonction f définie dans MaClasse a été appelée sans paramètre alors que la définition en contenait un. Ca devrait normalement déclencher une exception. Mais il nen est rien car la particularité des méthodes est que lobjet est passé comme premier argument de la fonction. Le plus souvent par convention appelé « self » pour amélioré la lisibilité du programme. Lappel x.f() est donc équivalent à MaClasse.f(x). Il nest pas nécessaire que la définition de la méthode soit comprise dans la définition de la classe. Ex : def f1 (self,x,y): return min(x,x+y) class C: f=f1

68 Méthodes prédefinies… Python contient une liste de méthodes dites spéciales :

69 En particulier, la méthode __init__(self)… Lorsquune class définit la méthode spéciale __init__(), linstantation de la classe appelle automatiquement cette méthode. Il sagit en fait de ce quon appel en C/C++ un constructeur. Bien sûr, la méthode __init__() peut prendre autant de paramètre quon le vaut, pour une flexibilité accrue… Ex : class Complexe: def __init__(self, partiereelle, partieimaginaire): self.r = partiereelle self.i = partieimaginaire x = Complexe(3.0,-4.5) x.r, x.i donne: (3.0, -4.5)

70 4. Lhéritage La syntaxe pour définir une classe dérive est la suivante : Class Nomclassedérivée (NomClassedeBase): … Rem : A la place de dun nom de classe de base, une expression est acceptée. Ce qui est utile lorsque le définition de la classe de base se trouve dans un autre module.. Ex : class NomClasseDerivee(nommod.NomClasseDeBase): Lexécution dune définition de classe dérivée se déroule comme une classe de base. Quand lobjet classe est construit, la classe de base est mémorisée.Cest ce qui permet de trouver facilement un attribut. Lorsquun attributs est réferencé, il est recherché dans la classe dérivée sil ne sy trouve pas on le recherchera dans la classe de base.

71 5. Lhéritage multiple Python supporte également lhéritage multiple. Une définition de classe avec plusieurs classes de base ressemble à : Class NomClasseDerivee (Base1,Base2,..,BaseN) … Lorsquon référence un attribut, la recherche seffectue en profondeur càd de gauche à droite? Donc si un attribut nest pas trouvé dans ClasseDerivee, on le cherchera dabord dans base1, puis dans base2, et ainsi de suite jusquà ce quon le trouve… Rem : Il faut faire attention aux conflits accidentelles!! Par exemple, si on crée une classe dérivée de deux autres classes dérivées de la même classe de base…risque de problèmes!!!!

72 CHAPITRE VIII : LES OUTILS DE PYTHON

73 1.Quelques librairies

74 2. Exemple dutilisation de GUI (Graphic User Interface) file: hello #!/usr/local/bin/python from Tkinter import * # get widget classes class Hello(Frame): # container subclass def __init__(self, parent=None): Frame.__init__(self, parent) # do superclass init self.pack() self.make_widgets() def make_widgets(self): widget = Button(self, text='Hello world', command = self.onPress) widget.pack(side=LEFT) def onPress(self): print "Hi." if __name__ == '__main__': Hello().mainloop() % hello

75


Télécharger ppt "Réalisé par : El Khamlichi Mohsin & Heyvaert Xavier."

Présentations similaires


Annonces Google