CodeGym /Cours /Python SELF FR /Travail avancé avec les paramètres

Travail avancé avec les paramètres

Python SELF FR
Niveau 6 , Leçon 5
Disponible

11.1 Nombre infini de paramètres

En Python, les fonctions peuvent être conçues pour accepter un nombre infini de paramètres. Cela se fait à l'aide d'arguments passés via *args pour les paramètres ordinaires et **kwargs pour les paramètres nommés.

Utilisation de *args

*args permet à une fonction d'accepter un nombre arbitraire d'arguments positionnels, que la fonction considérera comme un tuple. Exemple d'utilisation :


def print_all(*args):
    for item in args:
        print(item)

print_all(1, 'apple', True)  # affichera 1, apple et True.
        

La variable args contiendra un tuple de tous les paramètres qui ont été passés à la fonction lors de son appel.

Utilisation de **kwargs

**kwargs fonctionne de manière similaire à *args, mais pour les arguments nommés représentés sous forme de dictionnaire. Cela permet à la fonction d'accepter n'importe quel nombre d'arguments nommés :


def print_named_items(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_named_items(fruit='apple', number=1)  # affichera fruit: apple et number: 1
        

Ces mécanismes rendent les fonctions extrêmement flexibles et utiles dans les scénarios où le nombre de paramètres n'est pas connu à l'avance, par exemple lors du développement d'API ou de fonctions de gestion d'événements.

Nous examinerons ces deux cas plus en détail plus tard, mais vous devez savoir qu'en Python, il est très facile d'accéder à tous les arguments passés à une fonction. Et vous pouvez transmettre tout ce que vous voulez à une fonction.

11.2 Indication des types

Comme vous le savez, les variables en Python ne sont pas pré-typées. Vous pouvez attribuer une valeur de n'importe quel type à une variable, puis attribuer une valeur d'un nouveau type à la ligne suivante, et ainsi de suite.

C'est très pratique pour les petits programmes, mais pas très pratique pour les grands. Lorsqu'un programme est très grand et que le nombre de fonctions s'élève à des milliers, le développeur ne peut pas se souvenir des données exactes à transmettre à une fonction et dans quel ordre.

Dans les langages à typage statique, l'IDE indique elle-même aux développeurs quels paramètres avec quels types doivent être passés lors de l'appel d'une fonction. Mais Python est toujours un langage à typage dynamique, et ces indications n'ont nulle part où être prises.

C'est pourquoi les créateurs de Python ont inventé une chose comme type hinting. C'est une sorte de types de variables, mais ils sont plus des recommandations que des types. Aucune restriction n'est imposée par les types spécifiés.

L'indication des types a été introduite dans Python 3.5 et est devenue populaire grâce à la norme PEP 484. C'est un mécanisme qui permet aux développeurs de définir les types attendus des variables, des arguments et des valeurs de retour des fonctions.

Bien que Python reste un langage à typage dynamique, l'indication des types ajoute de la clarté et prend en charge la vérification statique des types. Exemples d'indication des types :


def add_numbers(a: int, b: int) -> int:
    return a + b
        

Le type de variable est indiqué par deux-points, et le type de résultat retourné par la fonction par une flèche.

Les avantages apportés par l'indication des types-recommandations :

  • Amélioration de la documentation : L'indication explicite des types rend le code auto-documenté.
  • Meilleur auto-complétion : Les éditeurs de code peuvent utiliser les informations de type pour améliorer l'auto-complétion.
  • Aide au débogage : La vérification statique des types peut identifier les erreurs potentielles avant l'exécution du programme.

Outils pour travailler avec les types

Python lui-même ne réagit pas aux types déclarés des variables. À la place, Python dispose d'un utilitaire spécial — mypy — un analyseur statique de types populaire, qui aide à capturer les erreurs dans le code utilisant l'indication des types.

1
Étude/Quiz
Les fonctions en Python, niveau 6, leçon 5
Indisponible
Les fonctions en Python
Les fonctions en Python
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION