Utilisez le didacticiel Python officiel sur la définition des fonctions comme votre référence: chaque fonction commence pardef, suivi d'un nom, parenthèses pour les paramètres, un côlon arrière et un bloc en retrait qui fonctionne lorsque la fonction est appelée.
Méthode 1 - Créez et appelez une fonction de base
Étape 1:Déclarer une fonction avecdefet un côlon.
def greet():
print("Hello from a function!")Étape 2:Appelez la fonction en utilisant son nom avec des parenthèses.
greet()Cela établit le modèle minimal: définition d'abord, appelez après. Python s'exécute de haut en bas, donc une fonction doit être définie avant l'appel.
Méthode 2 - Ajouter des paramètres et des défauts
Étape 1:Ajoutez des paramètres à l'intérieur des parenthèses pour accepter les entrées.
def full_name(first, last):
print(first + " " + last)Étape 2:Appelez la fonction avec des arguments correspondants.
Lisez également:
full_name("Ada", "Lovelace")Étape 3:Attribuer une valeur par défaut avec=pour faire un argument facultatif.
def hello(name="World"):
print(f"Hello, {name}!")
hello() # uses default
hello("Python") # overrides defaultLes défauts simplifient les appelants et gardez votre API stable lors de l'ajout d'un comportement facultatif. Voir les arguments par défaut dans le tutoriel officiel.
Méthode 3 - Valeurs de retour
Étape 1:UtiliserreturnPour renvoyer une valeur à l'appelant.
def area(w, h):
return w * hÉtape 2:Capturez la valeur renvoyée dans une variable.
a = area(3, 4)
print(a)Étape 3:Renvoyez plusieurs valeurs (elles sont emballées dans un tuple).
def point():
return 10, 20
x, y = point()Les détails de l'énoncé de retour sont couverts dans la référence du langage.
Méthode 4 - Acceptez un nombre variable d'arguments
Étape 1:Collecter des arguments de position supplémentaires avec*args.
def total(*args):
return sum(args)
print(total(1, 2, 3))Étape 2:Collectez les arguments de mots clés avec**kwargs.
def report(**kwargs):
for k, v in kwargs.items():
print(k, "=", v)
report(name="Keyboard", price=19.99)Cette interface permet à votre fonction de flexion à diverses entrées. Voir «Listes d'arguments arbitraires» dans le tutoriel officiel.
Méthode 5 - Contrôlez comment les appelants passent les arguments
Étape 1:Faire des paramètres positionnels uniquement en ajoutant/après eux.
def echo(x, /):
print(x)
echo(3) # OK
# echo(x=3) # TypeErrorÉtape 2:Faire des paramètres de mot-clé uniquement en ajoutant*devant eux.
def scale(value, *, factor=2):
return value * factor
scale(10, factor=3) # OK
# scale(10, 3) # TypeErrorUtilisez-les pour concevoir des API claires et sûres. Voir «Paramètres spéciaux» dans le tutoriel officiel.
Méthode 6 - documenter et organiser votre fonction
Étape 1:Ajoutez un docstring sur la première ligne du corps pour décrire l'objectif, les paramètres et la valeur de retour.
def hypotenuse(a, b):
"""Compute the length of the hypotenuse from legs a and b."""
return (a**2 + b**2) ** 0.5Étape 2:Garde les appels de script uniquement avecif __name__ == "__main__"Les importations ne les exécutent donc pas.
def main():
print(hypotenuse(3, 4))
if __name__ == "__main__":
main()Les conventions docstring sont définies dans PEP 257, et le__main__Le motif est couvert dans les documents sur l'exécution des modules en tant que scripts.
Méthode 7 - Utilisez un lambda pour des uniques simples
Étape 1:Créer une petite fonction anonyme aveclambdapour les cas rapides et à expression unique.
double = lambda x: x * 2
print(double(5))Étape 2:PréférerdefLorsque vous avez besoin de déclarations, un docstring ou une réutilisation.
def double_def(x):
return x * 2La syntaxe Lambda est spécifiée dans la référence du langage.
Méthode 8 - Placer les définitions où ils seront exécutés avant utilisation
Étape 1:Définissez les fonctions avant le premier appel dans le fichier pour éviter les erreurs de nom.
# Correct: defined before use
def hello():
print("Hello")
hello()Étape 2:Éviter d'appeler une fonction avant que sa définition ne soit exécutée; Python résout les noms à l'exécution, de haut en bas.
# This will raise NameError at runtime:
# hello()
# def hello():
# print("Hello")Étape 3:Définissez éventuellement les fonctions d'assistance dans une autre fonction pour garder la portée locale.
def outer():
def inner():
return "scoped helper"
return inner()Conseils rapides
- Les «paramètres» sont les noms de l'en-tête de fonction; Les «arguments» sont les valeurs que vous passez dans l'appel.
- Utiliser
passcomme un espace réservé lors de la décroche d'un corps de fonction. - Gardez les fonctions petites et concentrées; Cela simplifie les tests et la réutilisation.
Avecdef, paramètres réfléchis et renvoie clairs, vous écrirez des fonctions faciles à appeler, à tester et à étendre. Démarrer simple, puis ajouter les valeurs par défaut,*args/ /**kwargset les règles d'argument à mesure que votre API doit augmenter.














