2.2. Déclaration de fonctions
Python dispose de fonctions comme la
plupart des autre langages, mais il n'a pas de fichiers d'en-tête
séparés comme C++ ou de
sections interface/implementation
comme Pascal. Lorsque vous avez besoin
d'une fonction, vous n'avez qu'à la déclarer et l'écrire.
Il y a plusieurs remarques à faire. Premièrement, le mot clé
def débute une déclaration de fonction, suivi du nom
de la fonction, puis des arguments entre parenthèses. Les arguments
multiples (non montré ici) sont séparés par des virgules.
Deuxièmement, la fonction ne défini pas le type de données qu'elle
retourne. Les fonctions Python ne définissent
pas le type de leur valeur de retour, elle ne spécifient même pas si
elle retournent une valeur ou pas. En fait chaque fonction
Python retourne une valeur, si la fonction
exécute une instruction return, elle va en retourner la valeur, sinon
elle retournera None, la valeur nulle en
Python.
 |
| En Visual Basic, les fonctions (qui
retournent une valeur) débutent avec function et
les sous-routines (qui ne retourne aucune valeur) débutent avec
sub. Il n'y a pas de sous-routines en
Python. Tout est fonction, toute fonction
retourne un valeur (même si c'est None) et toute
fonction débute avec def.
|
Troisièmement, les arguments, params, ne
spécifient pas de types de données. En
Python, les variables ne sont jamais
explicitement typées. Python détermine le
type d'une variable et en garde la trace en interne.
 |
| En Java,
C++ et autres langage à
typage statique, vous devez spécifier les types de données de la
valeur de retour d'une fonction ainsi que de chaque paramètre. En
Python, vous ne spécifiez jamais de manière
explicite le type de quoi que ce soit. En se basant sur la valeur que
vous lui assignez, Python gère les types de
données en interne.
|
2.2.1. Comparaison des types de données en Python et dans d'autres langages de programmation
Un lecteur érudit propose l'explication suivante pour comparer
Python et les autres langages de
programmation :
- langage à typage statique
- Un langage dans lequel les types sont fixés à la
compilation. La plupart des langages à typage statique obtiennent
cela en exigeant la déclaration de toutes les variables et de leur
type avant leur utilisation. Java et
C sont des langages
à typage statique.
- langage à typage dynamique
- Un langage dans lequel les types sont découverts à
l'exécution, l'inverse du typage statique.
VBScript et
Python sont des langages à typage
dynamique, ils déterminent le type d'une variable la première fois
que vous lui assignez une valeur.
- langage fortement typé
- Un langage dans lequel les types sont toujours appliqués.
Java et Python sont fortement typés. Un entier
ne peut être traité comme une chaîne sans conversion explicite
- langage faiblement typé
- Un langage dans lequel les types peuvent être ignorés,
l'inverse de fortement typé. VBScript
est faiblement typé. En VBScript, vous
pouvez concaténer la chaîne '12' et l'entier
3 pour obtenir la chaîne
'123' et traiter le résultat comme l'entier
123, le tout sans faire de conversion
explicite.
Python est donc à la fois à
typage dynamique (il n'utilise pas de déclaration de type
explicite) et fortement typé (une fois qu'une
variable a un type, cela a une importance).