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

Maîtriser les arguments de fonctions Python : Positionnels, nommés et paramètres par défaut

Maîtriser les arguments de fonctions Python

Découvrez comment concevoir des fonctions qui acceptent un nombre variable d'arguments en Python — en utilisant les valeurs par défaut, les mots-clés et les paramètres arbitraires pour un code plus propre et plus adaptable.

Vidéo : Arguments de fonctions Python : Positionnels, mots-clés et défaut

Arguments

Dans le sujet des fonctions définies par l'utilisateur, nous avons couvert la définition et l'invocation des fonctions. Un appel qui ne correspond pas à la signature attendue lève une erreur. Par exemple :

def greet(name, msg):
    """Cette fonction salue la personne avec le message fourni."""
    print("Hello", name + ", " + msg)
greet("Monica", "Good morning!")

Sortie

Hello Monica, Good morning!

La fonction greet() accepte deux paramètres. L'appeler avec le bon nombre d'arguments s'exécute sans problème ; sinon, l'interpréteur émet un TypeError avec un message clair.

>>> greet("Monica") # un seul argument
TypeError: greet() missing 1 required positional argument: 'msg'
>>> greet() # aucun argument
TypeError: greet() missing 2 required positional arguments: 'name' and 'msg'

Arguments de fonction variables

Python offre des façons flexibles d'accepter un nombre variable d'arguments. Trois motifs courants sont couverts ci-dessous.

Arguments par défaut en Python

Les paramètres peuvent recevoir des valeurs par défaut en utilisant l'opérateur d'affectation (=). L'exemple suivant montre comment un message optionnel prend par défaut « Good morning! » :

def greet(name, msg="Good morning!"):
    """
    Cette fonction salue la personne avec le message fourni.
    Si le message n'est pas fourni, il prend par défaut "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 définition, name est obligatoire, tandis que msg est optionnel. Quand un argument par défaut est présent, tous les paramètres suivants doivent aussi avoir des défauts ; sinon une SyntaxError se produit.

def greet(msg = "Good morning!", name): pass
SyntaxError: non-default argument follows default argument

Arguments nommés (keyword) en Python

Python permet aux appelants de spécifier les arguments par nom, permettant une flexibilité d'ordre positionnel. La même fonction greet() peut être invoquée comme suit :

# 2 arguments nommés
greet(name = "Bruce", msg = "How do you do?")
# 2 arguments nommés (hors ordre)
greet(msg = "How do you do?", name = "Bruce")
# 1 positionnel, 1 nommé
greet("Bruce", msg = "How do you do?")

Mélanger arguments positionnels et nommés est permis seulement quand tous les arguments positionnels précèdent les nommés ; sinon une SyntaxError résulte.

greet(name="Bruce","How do you do?")
SyntaxError: non-keyword arg after keyword arg

Arguments arbitraires en Python

Quand le nombre d'arguments est inconnu au moment de la conception, utilisez un astérisque (*) pour les capturer comme un tuple :

def greet(*names):
    """Salue chaque nom dans le tuple fourni."""
    for name in names:
        print("Hello", name)
greet("Monica", "Luke", "Steve", "John")

Sortie

Hello Monica
Hello Luke
Hello Steve
Hello John

À l'intérieur de la fonction, names est un tuple contenant tous les arguments passés, qui peut ensuite être itéré ou traité selon les besoins.

Python

  1. Maîtriser les types de données Python : Guide pratique
  2. Maîtriser les opérateurs Python : Guide complet
  3. Maîtriser l'instruction pass en Python : Guide pratique
  4. Fonctions lambda en Python : Guide pratique des fonctions anonymes
  5. Maîtriser les dictionnaires Python : création, manipulation et techniques avancées
  6. Générateurs Python : itération efficace et cas d'utilisation avancés
  7. Les fermetures Python expliquées : comment les fonctions imbriquées capturent les variables
  8. Maîtriser les décorateurs Python : améliorer les fonctions avec des techniques expertes
  9. Maîtriser la méthode strip() de Python : Guide complet et exemples pratiques