Le cours accéléré Python est gratuit et sera publié ici sur dev.to. Je publierai un nouvel article tous les deux jours environ. Pour ne rien manquer, vous pouvez me suivre sur twitter : Suivez @EricLeCodeur
Créer vos propres fonctions
Comme vous avez pu le constater jusqu’à présent, Python inclut déjà plusieurs fonctions afin de nous simplifier la vie.
Le même principe va s'appliquer dans votre application, c’est-à-dire qu'il est possible de simplifier votre vie et celle de votre équipe en créant des fonctions réutilisables.
Voici les grandes lignes sur comment créer ses propres fonctions.
Déclaration
Pour créer une fonction vous devez utiliser l’instruction “def” suivit du nom de votre fonction, ajouter les parenthèses () et enfin les deux “:” qui indiquerons le début de votre bloc de code.
def say_hello():
print("Hello World")
Voilà votre première fonction !
Par contre, ceci n’est que la déclaration, pour la lancer il faut l’appeler de votre code.
say_hello()
# Hello World
L’appel se fait en utilisant le nom de la fonction suivit des parenthèses ()
Arguments
Il est possible de créer une fonction avec un ou des arguments. Les arguments sont un concept très puissant car ils permettent de personnaliser la fonction.
def say_hello(message):
print(message)
say_hello("Hello all!")
# Hello all!
À noter que le nombre d’argument de déclaration doit être identique au nombre d’argument lors de l’appel. Sinon, Python retournerait une erreur.
Pour éviter cette situation, un argument peut avoir une valeur par défaut. Pour ce faire il faut assigner une valeur à l’argument (argument = valeur par défaut)
def say_hello(message = "Hello World!"):
print(message)
say_hello()
# Hello World
Ici, l’appel de notre fonction say_hello() n’a pas d’argument. Python va donc utiliser sa valeur par défaut spécifié lors de sa déclaration.
Du coup, avec ce concept il est possible de rendre un argument optionnel.
Multiples arguments
Évidemment il est possible d’avoir plusieurs arguments
def say_hello(message, upper):
if upper:
return message.upper()
else:
return message
print(say_hello("Hello World", True))
Comme il est également possible d’avoir plusieurs valeurs par défaut
def say_hello(message="Hello", upper=True):
if upper:
return message.upper()
else:
return message
print(say_hello())
Ici l’appel de la fonction say_hello() est possible sans argument car les deux arguments sont optionnels.
Ordre des arguments quand il y a une valeur par défaut
À noter que les arguments qui ont une valeur par défaut doivent absolument être placés en dernier.
Voici un exemple qui retournera une erreur :
def say_hello(message="Hello", upper):
if upper:
return message.upper()
else:
return message
print(say_hello(True))
# SyntaxError: non-default argument follows default argument
Le code suivant n’est pas valide et retournera une erreur car certains arguments ont une valeur par défaut mais l’argument “upper” est en dernier et n’a pas de valeur par défaut. Dans cet exemple il serait impossible pour Python de savoir si l’argument True doit être associé à la variable “message” ou “upper”
Nommé un argument
Si une fonction comporte plusieurs arguments elle peut rapidement devenir complexe à lire.
Voici un exemple d’une fonction avec plusieurs arguments:
def create_invoice(sub_total, shipping, taxes):
print("...code...")
create_invoice(1000, 25, 100)
Lors de l’appel de la fonction il faut spécifier 3 arguments de type nombre. Il devient alors difficile de savoir à quoi servent ces nombres, du coup la lecture du code n’est pas explicite.
Pour éviter cette situation, Python permet de spécifier le nom de l’argument
create_invoice(sub_total=1000, shipping=25, taxes=100)
Comme vous pouvez le constater, cette syntaxe rend la lecture du code beaucoup plus compréhensible.
Cette syntaxe permet également de changer l’ordre des arguments
create_invoice(taxes=100, sub_total=1000, shipping=25)
Une fonction qui retourne une valeur
Une fonction peut être assignée comme valeur à une variable
amount = calc_total(500, 50, 25)
Il est possible pour une fonction de retourner une valeur lors de son exécution. Pour ce faire vous devez utiliser l’instruction “return”
def calc_total(sub_total, taxes, shipping):
return sub_total + taxes + shipping
Si la fonction n’a pas d’instruction “return” elle va retourner “None”
def say_hello(message):
print(message)
return_value = say_hello("Hello World!")
print(return_value)
# Hello World
# None
En l’absence de l’instruction “return” la fonction va retourner la valeur “None”
Conclusion
C'est tout pour aujourd'hui, je publierai un nouvel article tous les deux jours environ. Pour être sûr de ne rien rater vous pouvez me suivre sur twitter : Suivre @EricLeCodeur
Top comments (0)