Python >> Tutoriel Python >  >> Python

Arguments par défaut de Python

Ce tutoriel présente le concept d'arguments par défaut en Python.

Un argument par défaut est un argument de fonction qui prend une valeur par défaut si vous ne transmettez pas de valeur explicite lors de l'appel de la fonction. Par exemple, la définition de fonction def f(x=0): <body> permet de l'appeler avec ou sans l'argument optionnel x —les appels valides sont f(2) , f(4) , ou même f() . Mais si vous ne passez pas l'argument facultatif, il attribuera simplement la valeur par défaut 0 à l'argument x .

Exemples d'argument par défaut

def f(x=0):
    print(x)

f(10)
# 10

f(-2)
# -2

f('hello world')
# hello world

########################
# DEFAULT ARGUMENT     #
########################
f()
# 0

Application :Quand utiliser les arguments par défaut ?

Supposons que vous ayez créé un outil de ligne de commande Python pour votre entreprise. L'outil nécessite une confirmation de l'utilisateur pour différentes activités telles que l'écriture ou la suppression de fichiers.

Pour éviter le code redondant, vous avez implémenté une fonction générique qui gère l'interaction avec l'utilisateur. Le comportement par défaut doit consister en trois étapes.

  • (1) Vous posez (invitez) une question à l'utilisateur.
  • (2) L'utilisateur met une réponse.
  • (3) Tant que la réponse n'est pas valide, la fonction se répète jusqu'à quatre fois, en imprimant à chaque fois un rappel 'Try again: yes or no?' .

Le nombre de répétitions et le rappel doivent être personnalisables via les paramètres.

Pour ce faire, vous pouvez spécifier des arguments par défaut comme indiqué dans l'extrait de code suivant. Vous pouvez utiliser les paramètres par défaut en appelant ask_ok('May we send you a free gift?') . Ou vous pouvez les écraser dans l'ordre de leur définition (un, plusieurs ou tous les paramètres).

def ask_ok(prompt, retries=4, reminder='Try again: yes or no?'):
    while retries>0:
        ok = input(prompt)
        if ok in ('y', 'yes'):
            return True
        if ok in ('n', 'no'):
            return False
        retries = retries - 1
        print(reminder)

ask_ok('May we send you a free gift?')

Voyons comment vous comprenez ce concept d'arguments par défaut.

Arguments par défaut du puzzle

Est ask_ok('Howdy?', 5) un appel de fonction valide ?

Il est intéressant que seulement 50 % de tous les utilisateurs de finxter résolvent ce casse-tête :ils semblent deviner la réponse. Le remplacement partiel des arguments par défaut est une nouvelle fonctionnalité pour la plupart des utilisateurs. C'est nouveau pour vous ?

La maîtrise de ces fonctionnalités linguistiques de base vous élèvera au niveau d'un codeur avancé.

Êtes-vous un codeur maître?
Testez vos compétences maintenant !

Vidéo associée