Explication de la leçon
Après cette leçon, tu seras capable de :
Un argument par défaut attribue une valeur à un paramètre lorsque l'appelant omet cet argument :
def format_status(service, status="unknown"):
return f"{service}: {status}"format_status("worker") utilise "unknown", tandis que format_status("worker", "healthy") le remplace.
Les paramètres sans valeurs par défaut doivent obligatoirement précéder les paramètres avec valeurs par défaut :
def create_job(name, retries=3):
...Python permet également aux appelants de transmettre des arguments par mot-clé :
create_job(name="backup", retries=5)Les arguments nommés rendent les appels plus lisibles lorsque plusieurs valeurs ont des types similaires ou lorsqu'un seul paramètre optionnel doit être personnalisé. Leur ordre peut différer de l'ordre des paramètres, tant que chaque nom est valide et qu'aucun argument n'est fourni deux fois.
Les tests de fonctions peuvent vérifier le comportement par défaut en appelant une fonction avec moins d'arguments. L'exécuteur de tâches de fonction actuel appelle les fonctions de manière positionnelle ; cette leçon entraîne donc à la syntaxe d'appel par mot-clé à travers des exercices de code ciblés tout en utilisant de réels tests de fonctions pour vérifier leur logique.
Les sujets avancés tels que *args, **kwargs, les paramètres exclusivement nommés et les pièges des valeurs par défaut mutables sont abordés dans l'unité approfondie sur les fonctions.
def cache_label(service, ttl=300):
return f"{service}: {ttl}s"
print(cache_label("api"))Sortie :
api: 300sL'appelant fournit uniquement l'argument obligatoire.
def retry_label(job, retries=3):
return f"{job}: {retries} retries"
print(retry_label("sync", 5))Sortie :
sync: 5 retriesLe second argument remplace la valeur par défaut.
def build_window(name, width=800, height=600):
return f"{name}: {width}x{height}"
print(build_window(name="Dashboard", height=720, width=1280))Sortie :
Dashboard: 1280x720Les arguments nommés peuvent être fournis dans un ordre différent.
def create_alert(message, level="info", channel="console"):
return f"[{level}] {channel}: {message}"
print(create_alert("Queue delayed", channel="slack"))Sortie :
[info] slack: Queue delayedSeul le canal est remplacé ; le niveau conserve sa valeur par défaut.
| Objectif | Python |
|---|---|
| Définir un paramètre optionnel | parameter=value |
| Utiliser la valeur par défaut | Omettre cet argument |
| Remplacer la valeur par défaut | Fournir une autre valeur |
| Rendre un appel explicite | parameter=value lors de l'appel |
| Conserver une signature valide | Paramètres obligatoires avant les valeurs par défaut |