Arguments positionnels vs arguments de mots-clés en Python

Aditya Raj 30 janvier 2023
  1. Qu’est-ce qu’un argument en Python ?
  2. Qu’est-ce qu’un argument positionnel en Python ?
  3. Qu’est-ce qu’un argument de mot-clé en Python ?
  4. Arguments positionnels vs. arguments mots-clés : que devriez-vous utiliser ?
  5. Conclusion
Arguments positionnels vs arguments de mots-clés en Python

Lors de l’appel d’une fonction en Python, nous devons souvent lui transmettre des valeurs d’entrée. Dans cet article, nous discuterons des arguments de position et des arguments de mot-clé en Python. Nous aurons également une discussion sur l’argument positionnel par rapport à l’argument mot-clé dans lequel nous discuterons des avantages et des inconvénients de ces deux approches pour fournir des entrées aux fonctions en Python.

Qu’est-ce qu’un argument en Python ?

Pour comprendre un argument, déclarons une fonction printDetails() qui prend quatre valeurs, à savoir name, identity_number, age et weight d’une personne, puis les imprime.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)

Ici, name, identity_number, age et weight sont appelés paramètres de la fonction printDetails(). Ainsi, on peut dire qu’un paramètre fait partie de la signature/déclaration d’une fonction.

Maintenant, supposons que nous voulions appeler la fonction printDetails() avec le name-Aditya, identity_number-TM2017001, age-23 et weight-65 comme saisir. Nous pouvons le faire comme suit.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails("Aditya", "TM2017001", 23, 65)

Production :

Name is: Aditya
Identity Number is: TM2017001
Age is: 23
Weight is: 65

Ici, Aditya, TM2017001, 23 et 65 sont des arguments de la fonction printDetails(). Lors de l’exécution de la fonction, la valeur Aditya est attribuée au paramètre name, TM2017001 est attribuée au paramètre identity_number, 23 est attribuée au paramètre age et 65 est affecté au paramètre weight. Par conséquent, nous pouvons dire qu’un argument est une valeur qui est transmise à une fonction et qu’un paramètre est la variable déclarée dans la fonction à laquelle l’argument est affecté.

Pour affecter un argument à un paramètre, on peut soit passer les valeurs dans l’ordre dans lequel les paramètres sont déclarés dans la fonction. Alternativement, nous pouvons également affecter directement les arguments aux paramètres. Sur cette base, les arguments en Python sont classés en arguments de position et en arguments de mot-clé. Discutons-en un par un.

Qu’est-ce qu’un argument positionnel en Python ?

Lorsque nous passons directement un argument à une fonction et qu’il est affecté à un paramètre en fonction de sa position, il est alors appelé un argument positionnel. Par exemple, lorsque nous appelons la fonction printDetails() avec les valeurs Aditya, TM2017001, 23 et 65 comme suit,

printDetails("Aditya", "TM2017001", 23, 65)

Tous les arguments d’entrée seront affectés aux paramètres en fonction de leur position dans l’appel de fonction et de la position des paramètres dans la déclaration de fonction. Écrivons ensemble l’appel de fonction et la déclaration de fonction pour mieux comprendre cela.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails("Aditya", "TM2017001", 23, 65)

Production :

Name is: Aditya
Identity Number is: TM2017001
Age is: 23
Weight is: 65

Ici, vous pouvez observer que la fonction printDetails() a des paramètres dans l’ordre de name, identity_number, age et weight. Par conséquent, Aditya est attribué à name, TM2017001 est attribué à identity_number, 23 est attribué à age et 65 est attribué à weight.

Qu’est-ce qu’un argument de mot-clé en Python ?

Au lieu de ne transmettre que des valeurs dans la fonction, nous pouvons les affecter directement aux paramètres comme suit.

printDetails(name="Aditya", identity_number="TM2017001", age=23, weight=65)

Ici, chaque paramètre fonctionne comme une clé et chaque argument fonctionne comme une valeur. Par conséquent, les arguments sont appelés arguments de mot-clé. Lors de l’exécution, la fonction fonctionne de la même manière qu’avec les arguments positionnels. Vous pouvez l’observer dans l’exemple suivant.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails(name="Aditya", identity_number="TM2017001", age=23, weight=65)

Production :

Name is: Aditya
Identity Number is: TM2017001
Age is: 23
Weight is: 65

Arguments positionnels vs. arguments mots-clés : que devriez-vous utiliser ?

Si nous parlons d’exécution, les arguments positionnels et les arguments mot-clé ont la même efficacité. Le choix d’utiliser l’une de ces approches dépend de votre convenance.

Lors de l’utilisation d’arguments positionnels, la modification de la position des arguments d’entrée peut entraîner des résultats indésirables. Par exemple, regardez l’exemple suivant.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails(65, "TM2017001", 23, "Aditya")

Production :

Name is: 65
Identity Number is: TM2017001
Age is: 23
Weight is: Aditya

Ici, le 65 a été affecté au paramètre name et Aditya a été affecté au paramètre weight. Ainsi, il est important de passer les arguments positionnels dans le même ordre dans lequel les paramètres correspondants ont été définis dans la déclaration de fonction.

D’un autre côté, nous pouvons passer les arguments dans n’importe quel ordre en utilisant des arguments de mot-clé. Cela n’affecte pas la sortie de la fonction. Vous pouvez l’observer dans l’exemple suivant.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails(weight=65, identity_number="TM2017001", age=23, name="Aditya")

Production :

Name is: Aditya
Identity Number is: TM2017001
Age is: 23
Weight is: 65

Ainsi, si vous souhaitez éviter toute erreur possible due à un changement de position des arguments, il serait préférable d’utiliser le mot-clé arguments.

Nous pouvons également utiliser des arguments de position et de mot-clé dans un seul appel de fonction, comme indiqué dans le programme suivant.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails("Aditya", "TM2017001", age=23, weight=65)

Production :

Name is: Aditya
Identity Number is: TM2017001
Age is: 23
Weight is: 65

Ici, vous pouvez observer que les arguments positionnels sont passés à la fonction au même endroit où le paramètre correspondant a été défini. En comparaison, les arguments de mot-clé peuvent être passés dans n’importe quel ordre. De plus, nous ne pouvons pas passer d’arguments positionnels après avoir passé un argument de mot-clé.

Une fois que nous avons passé un argument de mot-clé, tous les arguments restants doivent être passés en tant qu’arguments de mot-clé. Sinon, le programme rencontrera une erreur, comme vous pouvez le constater dans l’exemple suivant.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails("Aditya", identity_number="TM2017001", 23, weight=65)

Production :

  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 8
    printDetails("Aditya", identity_number="TM2017001", 23, weight=65)
                                                        ^
SyntaxError: positional argument follows keyword argument

Ainsi, vous pouvez choisir des arguments de position, ou des arguments de mot-clé, ou les deux dans le même appel de fonction selon votre convenance.

Conclusion

Dans cet article, nous avons étudié les arguments positionnels et les arguments mots-clés en Python. Nous avons également discuté de l’argument positionnel par rapport à l’argument mot-clé et conclu que les deux approches sont égales en termes d’efficacité d’exécution. Nous pouvons même les utiliser ensemble dans un seul appel de fonction. Gardez simplement à l’esprit que nous ne pouvons pas utiliser un argument positionnel après un argument mot-clé.

Auteur: Aditya Raj
Aditya Raj avatar Aditya Raj avatar

Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.

GitHub

Article connexe - Python Function

Article connexe - Python Argument