Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

Arguments de la fonction Python

Arguments de la fonction Python

En Python, vous pouvez définir une fonction qui prend un nombre variable d'arguments. Dans cet article, vous apprendrez à définir de telles fonctions à l'aide d'arguments par défaut, de mots-clés et arbitraires.

Vidéo :Arguments de la fonction Python :positionnel, mots-clés et valeur par défaut

Arguments

Dans la rubrique sur les fonctions définies par l'utilisateur, nous avons appris à définir une fonction et à l'appeler. Sinon, l'appel de la fonction entraînera une erreur. Voici un exemple.

def greet(name, msg):
    """This function greets to
    the person with the provided message"""
    print("Hello", name + ', ' + msg)

greet("Monica", "Good morning!")

Sortie

Hello Monica, Good morning!

Ici, la fonction greet() a deux paramètres.

Puisque nous avons appelé cette fonction avec deux arguments, elle s'exécute sans problème et nous n'obtenons aucune erreur.

Si nous l'appelons avec un nombre différent d'arguments, l'interpréteur affichera un message d'erreur. Vous trouverez ci-dessous un appel à cette fonction avec un et aucun argument avec leurs messages d'erreur respectifs.

>>> greet("Monica")    # only one argument
TypeError: greet() missing 1 required positional argument: 'msg'
>>> greet()    # no arguments
TypeError: greet() missing 2 required positional arguments: 'name' and 'msg'

Arguments de fonction variable

Jusqu'à présent, les fonctions avaient un nombre fixe d'arguments. En Python, il existe d'autres façons de définir une fonction qui peut prendre un nombre variable d'arguments.

Trois formes différentes de ce type sont décrites ci-dessous.

Arguments Python par défaut

Les arguments de fonction peuvent avoir des valeurs par défaut en Python.

Nous pouvons fournir une valeur par défaut à un argument en utilisant l'opérateur d'affectation (=). Voici un exemple.

def greet(name, msg="Good morning!"):
    """
    This function greets to
    the person with the
    provided message.

    If the message is not provided,
    it defaults to "Good
    morning!"
    """

    print("Hello", name + ', ' + msg)


greet("Kate")
greet("Bruce", "How do you do?")

Sortie

Hello Kate, Good morning!
Hello Bruce, How do you do?

Dans cette fonction, le paramètre name n'a pas de valeur par défaut et est requis (obligatoire) lors d'un appel.

Par contre, le paramètre msg a une valeur par défaut de "Good morning!" . Il est donc facultatif lors d'un appel. Si une valeur est fournie, elle écrasera la valeur par défaut.

N'importe quel nombre d'arguments dans une fonction peut avoir une valeur par défaut. Mais une fois que nous avons un argument par défaut, tous les arguments à sa droite doivent également avoir des valeurs par défaut.

Cela signifie que les arguments non par défaut ne peuvent pas suivre les arguments par défaut. Par exemple, si nous avions défini l'en-tête de la fonction ci-dessus comme :

def greet(msg = "Good morning!", name):

Nous obtiendrions une erreur comme :

SyntaxError: non-default argument follows default argument

Arguments des mots clés Python

Lorsque nous appelons une fonction avec certaines valeurs, ces valeurs sont affectées aux arguments en fonction de leur position.

Par exemple, dans la fonction ci-dessus greet() , lorsque nous l'avons appelé greet("Bruce", "How do you do?") , la valeur "Bruce" est assigné à l'argument nom et de même "How do you do?" à msg .

Python permet d'appeler des fonctions à l'aide d'arguments de mots-clés. Lorsque nous appelons des fonctions de cette manière, l'ordre (position) des arguments peut être modifié. Les appels suivants à la fonction ci-dessus sont tous valides et produisent le même résultat.

# 2 keyword arguments
greet(name = "Bruce",msg = "How do you do?")

# 2 keyword arguments (out of order)
greet(msg = "How do you do?",name = "Bruce") 

1 positional, 1 keyword argument
greet("Bruce", msg = "How do you do?")           

Comme nous pouvons le voir, nous pouvons mélanger des arguments de position avec des arguments de mots-clés lors d'un appel de fonction. Mais nous devons garder à l'esprit que les arguments de mot-clé doivent suivre les arguments de position.

Avoir un argument de position après les arguments de mots-clés entraînera des erreurs. Par exemple, l'appel de fonction comme suit :

greet(name="Bruce","How do you do?")

Entraînera une erreur :

SyntaxError: non-keyword arg after keyword arg

Arguments arbitraires Python

Parfois, on ne sait pas à l'avance le nombre d'arguments qui seront passés dans une fonction. Python nous permet de gérer ce genre de situation grâce à des appels de fonction avec un nombre arbitraire d'arguments.

Dans la définition de la fonction, nous utilisons un astérisque (*) avant le nom du paramètre pour désigner ce type d'argument. Voici un exemple.

def greet(*names):
    """This function greets all
    the person in the names tuple."""

    # names is a tuple with arguments
    for name in names:
        print("Hello", name)


greet("Monica", "Luke", "Steve", "John")

Sortie

Hello Monica
Hello Luke
Hello Steve
Hello John

Ici, nous avons appelé la fonction avec plusieurs arguments. Ces arguments sont regroupés dans un tuple avant d'être transmis à la fonction. Dans la fonction, nous utilisons un for boucle pour récupérer tous les arguments.


Python

  1. Types de données Python
  2. Opérateurs Python
  3. Instruction de passe Python
  4. Fonction Python Anonyme/Lambda
  5. Dictionnaire Python
  6. Générateurs Python
  7. Fermetures Python
  8. Décorateurs Python
  9. Python String strip() Fonction avec EXAMPLE