5
! "#$%&"&"#'('$
$%*2-34***35!('(6 678!' !(6!8'9 -8':!6 6
%;!6 (6<(!78!' '(('=>;
))%6'!?68(
"%***#8'6;@6 @!6A7! !!6=;));;
"%*2-#8'6;@6 @!6A76 !!6=;));;
Affiche&:
!6 (6<(!78!' '(('=>/**
@6 @!6A7! !!6=/********
@6 @!6A76 !!6=/2-200***
Retour sur l'appel de fonction (3) :
L'instruction global
ENVIRONNEMENT
GLOBAL
)) *+,,-*
"*+./,0
$*+2-1**!
*+1/,!2
adressenom
ENVIRONNEMENT
LOCAL (1er appel)
$*+0**
*+,,-*
adressenom
*+,,-*
*+./,0
*+2-1**!
1000
1.024
*+0**
MEMOIRE
*+1/,!2
500
*+22//1* 524 288 000
ENVIRONNEMENT
LOCAL (2ème appel)
$*+22//1*
*+,,-*
adressenom
"Taille du disque annoncée.. en Mo ?"
500 000 000
6
Retour sur l'appel de fonction (4) :
Paramètres nommés et optionnels
●Nous savons qu'une fonction s'utilise (s'appelle) en écrivant son nom
suivi du n-uplet de ses arguments&; l'association entre paramètres
formels et actuels se fait donc «&par position»
!'('!B&&**4
333
+%2,-5!'866=!%%2%,%-+%./
C%2,5!'866=!%%2%,%C%.**
●En Python, comme dans d'autres langages, il est possible de rendre
explicite l'affectation formel = actuel, mais il faut alors écrire :
–en premier les actuels par position
–en dernier toutes les affectations explicites formel = actuel,
dans n'importe quel ordre
●Cette modalité d'appel se dit «&par argument nommé»
Exemple&:
+%2,%- 5!'866=!%%2%,AA7=%-+%./
C%2%,% 5!'866=!%%2AA7=%,%C%.**
C%%,%!%%2 5AA7=!%%2%,%C%.**
7
Retour sur l'appel de fonction (5) :
Paramètres nommés et optionnels
●En Python, comme dans d'autres langages, il est aussi possible de définir
une valeur par défaut pour certains paramètres
●De cette façon, on pourra éviter de les fournir au moment de l'appel,
autrement dit, ces paramètres seront optionnels (fournis de façon
optionnelle)
●Dans le n-uplet des formels de la définition il faudra écrire les
affectations formel = valeur-par-défaut dans le bon ordre
–en premier les formels non optionnels
–en dernier les formels optionnels
!%'('!B&&**4586 8!'7!(7! D
333
+%2,- 5!'866=!%%2%,%-+%./
C%2, 5!'866=!%%2%,%C%.**
C%2, 5!'866=!%%2%,!'7!(=%C%.**
C%%,%!%%2 5AA7=!%%2%,%C%.**
C%%,!%%2 5AA7=!%%2%,!'7!(=%C%.**
8
Notion n°13 : Introduction en Python à la
Programmation orientée objet (POO) (1)
●Rappels sur la notion de module (cours n°4)
Motivation&:
–Quand le code devient complexe, il est nécessaire de le structurer en
plusieurs composants distincts (modules, bibliothèques, classes, …)
dont le but aura été clairement identifié
–Le composant fournira un ensemble d'outils cohérents en rapport avec
son but (d'où le qualificatif de conteneur)
–Ce sera donc un conteneur d'outils réutilisables dans d'autres projets
–En Python, il existe à la fois la notion de module classique (conteneur de
fonctions) , et celle de la
programmation orientée objet
(POO), c'est-à-dire
les notions de classe et objet (conteneur de valeurs, qu'on appelle
champs
ou
propriétés
, et de fonctions, qu'on appelle
méthodes
)