Maison >développement back-end >Tutoriel Python >Comment utiliser le module de saisie pour annoter la définition de fonction avec des types d'entrée et de sortie en Python

Comment utiliser le module de saisie pour annoter la définition de fonction avec des types d'entrée et de sortie en Python

Barbara Streisand
Barbara Streisandoriginal
2024-12-21 13:43:11413parcourir

How to Use Typing Module to Annotate Function Definition with Input and Output Types in Python

Le but de cette page ? est d'expliquer comment utiliser les indices de type en Python, en particulier pour les fonctions qui renvoient une liste de dictionnaires.
Je suis lentement en passant par la maîtrise avancée de Python de David Baezley et - sur la base de l'approche systématique de How to Code en matière de conception de programmes - j'annote des fonctions avec des types d'entrée et de sortie car cette définition détermine la forme de la fonction.

  • Indices de saisie : améliorez la lisibilité et la maintenabilité du code.
  • module de saisie : fournit des annotations de type plus spécifiques.
  • PEP 484 : introduction d'indices de type dans Python 3.5.
    • Voir plus : https://peps.python.org/pep-0484/#the-typing-module
  • Types courants : Liste, Dict, Tuple, Union, Facultatif.
  • Spécifiez la liste des dicts : utilisez List[Dict[str, int]] pour le type de retour.
  • Exemple de Advanced Python Mastery qui lit un fichier .csv fourni avec un horaire de bus de quatre colonnes et renvoie une liste de dictionnaires. Je tiens surtout à préciser ce dernier fait.
  from typing import List, Dict
  import csv

  def read_rides(filename: str) -> List[Dict]:
      rides = []
      with open(filename, "r") as file:
          rows = csv.reader(file)
          headers = [row.strip() for row in next(rows)]
          print(f"ROW headers: {headers}")
          for row in rows:
              ride = {}
              for column_number, column_name in enumerate(headers):
                  ride[column_name] = row[column_number].strip()
              rides.append(ride)
      return rides

LINKS

https://peps.python.org/pep-0484/#the-typing-module
https://github.com/dabeaz-course/python-mastery/blob/main/Exercises/ex2_2.md
https://htdp.org/2022-2-9/Book/part_one.html#(part._sec~3adesign-func)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn