Mémo : Créer des fonctions

Structure d'un programme avec des fonctions

# ====================
# Commentaire sur le programme :
# description
# auteur
# licence

# ====================
# Importation des modules externes

# ====================
# Définitions des fonctions personnelles

# ====================
# Programme principal

Exemples de fonctions

Fonction simple

# Définition de la fonction
def foo():
    # Code de la fonction

# Programme principal
foo()

Fonction avec paramètres

# Définition de la fonction
def foo(param1, param2...):
    # Code de la fonction.
    # Ce code utilise les paramètres param1, param2...

# Programme principal
foo(arg1, arg2...)

Lors de l'appel (ligne 7), les différentes valeurs passées en arguments sont affectées aux paramètres (ligne 2).

Fonction qui renvoie une donnée

L'utilisation du mot return permet d'indiquer la donnée que la fonction doit renvoyer.

# Définition de la fonction
def foo(param1, param2...):
    # Code de la fonction (avec utilisation des paramètres)
    return donnee_retrounee

# Programme principal
val = foo(arg1, arg2...)

Les étapes de l'exécution d'une fonction

Les étapes de l'exécution d'une fonction sont  :

  • Appel de la fonction dans le programme principal (ou dans une autre fonction) : les arguments sont respectivement affectés aux paramètres.
  • Exécution du code de la fonction.
  • Renvoi de la donnée au programme principal.

Documentation d'une fonction

Docstring d'une fonction

La docstring se place en tout début de fonction dans une chaine de caractères multi-lignes.

La docstring doit contenir les informations suivantes :

  • - une description de la fonction
  • - la liste des paramètres avec leurs types et les préconditions sur ces paramètres,
  • - la liste des valeurs renvoyées par la fonction, leurs types et les postconditions sur ces valeurs,
  • - les effets de bord s'il y en a.
def nom(param1, param2):
    """
    Brève description.

    Args:
        param1 (type): description
        param2 (type): description

    Returns:
        type: description du retour
    """

    # Code de la fonction

Annotations de type

Dans sa version minimaliste, la documentation de la fonction précise, dans la première ligne de la définition, les types des paramètres et le type de la valeur renvoyée.

def surface(param1:type, param2:type) -> type:
    # Code de la fonction
    return ...