Arguments arbitraires

Python intermédiaire pour développeurs et développeuses

Jasmin Ludolf

Curriculum Manager

Limites des arguments définis

def average(values):
    """Find the mean in a sequence of values and round to two decimal places."""

    average_value = sum(values) / len(values)
    rounded_average = round(average_value, 2)
    return rounded_average

# Using six arguments print(average(15, 29, 4, 13, 11, 8))
TypeError: average() takes 1 positional argument but 6 were given
Python intermédiaire pour développeurs et développeuses

Arguments positionnels arbitraires

  • Les docstrings expliquent comment utiliser vos fonctions personnalisées

  • Les arguments arbitraires permettent d'accepter n'importe quel nombre d'arguments

# Permettre tout nombre d'arguments positionnels (non nommés)
def average(*args):
    # Le code de la fonction ne change pas
  • Nom d'usage : *args

  • Offre diverses utilisations tout en donnant les résultats attendus !

Python intermédiaire pour développeurs et développeuses

Utiliser des arguments positionnels arbitraires

# Appeler average avec six arguments positionnels
print(average(15, 29, 4, 13, 11, 8))
13.33
Python intermédiaire pour développeurs et développeuses

Args crée un seul itérable

  • * : regroupe les arguments en un seul itérable (tuple)
# Calculer à partir de plusieurs listes
print(average(*[15, 29], *[4, 13], *[11, 8]))
13.33
Python intermédiaire pour développeurs et développeuses

Arguments nommés arbitraires

# Utiliser des arguments nommés arbitraires
def average(**kwargs):

average_value = sum(kwargs.values()) / len(kwargs.values()) rounded_average = round(average_value, 2) return rounded_average
  • Arguments nommés arbitraires : **kwargs

  • mot_clef=valeur

Python intermédiaire pour développeurs et développeuses

Utiliser des arguments nommés arbitraires

# Appeler average avec six arguments nommés
print(average(a=15, b=29, c=4, d=13, e=11, f=8))
13.33
# Appeler average avec un argument nommé
print(average(**{"a":15, "b":29, "c":4, "d":13, "e":11, "f":8}))
13.33
  • Chaque paire clé‑valeur du dictionnaire devient un argument nommé et sa valeur !
Python intermédiaire pour développeurs et développeuses

Kwargs crée un seul itérable

# Appeler average avec trois groupes d'arguments nommés
print(average(**{"a":15, "b":29}, **{"c":4, "d":13}, **{"e":11, "f":8}))
13.33
Python intermédiaire pour développeurs et développeuses

Passons à la pratique !

Python intermédiaire pour développeurs et développeuses

Preparing Video For Download...