Tutoriel Python - Arguments de fonction

  1. Arguments de fonctions Python
  2. Types d’arguments de la fonction Python

Dans cette section, vous apprendrez les arguments des fonctions Python et leurs différents types tels que les arguments par défaut, les arguments de mots-clés et les arguments arbitraires.

Arguments de fonctions Python

Les arguments de la fonction sont les valeurs sur lesquelles les opérations sont effectuées à l’intérieur de la fonction.

Lorsque vous définissez une fonction avec un nombre spécifié d’arguments, vous devez appeler cette fonction particulière en passant ce nombre spécifié d’arguments.

Si vous passez plus ou moins d’arguments que ceux spécifiés dans la définition de la fonction, vous obtiendrez une TypeError.

Considérez le code ci-dessous:

def language(p, n):
    """Function to print a message"""
    print("Programming language",n,"is:", p)
language('Python', 1)
language('Java', 2)
Programming language 1 is: Python
Programming language 2 is: Java

La fonction Langue a deux arguments. Et si vous appelez la fonction avec un nombre différent d’arguments, vous aurez une erreur comme ci-dessous:

>>> language('Python')

Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    language('Python')
TypeError: language() takes exactly 2 arguments (1 given)

>>> language(2, 'Python', 'Java')

Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    language(2, 'Python', 'Java')
TypeError: language() takes exactly 2 arguments (3 given)

Types d’arguments de la fonction Python

La fonction précédente a un nombre fixe d’arguments. Et la fonction peut aussi avoir des arguments variables.

Il y a trois façons différentes de passer des arguments variables à une fonction. Maintenant, passons-les toutes en revue.

Arguments par défaut d’une fonction Python

Dans une fonction, les arguments peuvent avoir des valeurs par défaut qui sont affectées dans la définition de la fonction. Si les arguments ont une valeur par défaut, alors il est optionnel de passer des valeurs pour ces arguments:

Ceci est démontré dans l’exemple ci-dessous:

def language(p = 'C++', n = 3):
    """Function to print a message"""
    print("Programming language",n,"is:", p)
language()
Programming language 3 is: C++

Vous pourriez voir ici qu’aucun argument n’est passé mais que le programme fonctionne toujours bien; parce que les valeurs par défaut des arguments sont fournies. Si vous passez des valeurs pour l’un des arguments, la valeur par défaut sera écrasée.

Arguments des mots-clés des fonctions Python

Normalement, vous passez plusieurs arguments dans la même séquence que celle définie dans la définition de la fonction. Mais si vous utilisez des arguments de mot-clé, vous pouvez changer la position des arguments.

def language(p, n):
    """Function to print a message"""
    print("Programming language",n,"is:", p)
language(p = 'C++', n = 3)
Programming language 3 is: C++

Vous pouvez également modifier la position des arguments si vous utilisez des arguments de mot-clé pour affecter des valeurs explicitement aux arguments spécifiques.

def language(p, n):
    """Function to print a message"""
    print("Programming language",n,"is:", p)
language(n = 3, p = 'C++')
Programming language 3 is: C++

Fonction Python Arguments arbitraires

Des arguments arbitraires sont utilisés lorsqu’on ne sait pas à l’avance combien d’arguments doivent être passés.

Une fonction arbitraire est désignée par un astérisque * avant le nom de l’argument. Elle passe les arguments non-keywordés comme un tuple à la fonction.

def language(*args):
    """Demo function of arbitray arguments"""
    for i in args:
        print("Programming language:", i)

language("Java", "C++", "R", "Kotlin")
Programming language: Java
Programming language: C++
Programming language: R
Programming language: Kotlin

La fonction est appelée en passant de multiples arguments. Ces arguments sont convertis en un tuple avant que la fonction ne soit effectivement appelée.

Le double astérisque **kwargs est l’idiome pour passer les arguments arbitraires de mots-clés à la fonction. Par exemple,

def language(**kwargs):
    """Demo funciton of arbitrary keyword arguments"""
    for a in kwargs:
        print(a, kwargs[a])
        
language(country="NL", code="+31")
country NL
code +31

Les arguments de ce mot-clé arbitraire sont passés comme un dictionnaire dont les keys sont des mots-clés et les valeurs sont des valeurs correspondantes. Comme dans l’exemple ci-dessus, les arguments passés sont convertis en un dictionnaire {'country':"NL", 'code':"+31"}.

comments powered by Disqus