Les indices de type dans Python sont utilisés pour indiquer les types attendus de variables, les paramètres de fonction et les valeurs de retour. Ils sont une fonctionnalité introduite dans Python 3.5 dans le cadre de PEP 484. Voici comment vous pouvez utiliser des astuces de type:
Annotations de fonction :
Pour ajouter des conseils de type aux paramètres de fonction et des valeurs de retour, vous utilisez un côlon :
suivi du type. Par exemple:
<code class="python">def greet(name: str) -> str: return f"Hello, {name}!"</code>
Dans cet exemple, name
devrait être un str
, et la fonction devrait renvoyer un str
.
Annotations variables :
Vous pouvez également ajouter des astuces de type aux variables:
<code class="python">age: int = 30</code>
Ici, age
est annoté comme un int
.
Collections :
Pour les collections comme les listes, les tuples et les dictionnaires, vous utilisez le module typing
introduit dans Python 3.5:
<code class="python">from typing import List, Tuple, Dict numbers: List[int] = [1, 2, 3] coordinates: Tuple[int, int] = (10, 20) person: Dict[str, str] = {"name": "Alice", "city": "Wonderland"}</code>
Union et facultatif :
Vous pouvez spécifier qu'une variable ou un paramètre peut être l'un des nombreux types en utilisant Union
ou indiquer qu'il ne peut être None
en utilisant Optional
:
<code class="python">from typing import Union, Optional def process(value: Union[int, str]) -> int: if isinstance(value, str): return int(value) return value def say_hello(name: Optional[str] = None) -> str: return f"Hello, {name or 'World'}!"</code>
Types génériques :
Les astuces de type peuvent également être utilisées avec des génériques pour spécifier le type d'éléments dans une collection:
<code class="python">from typing import List, TypeVar T = TypeVar('T') def first(items: List[T]) -> T: return items[0]</code>
En utilisant des indices de type, les développeurs peuvent rendre leur code plus compréhensible et auto-documentaire, ce qui peut être utile pour les outils de vérification de type statique.
Les astuces de type dans Python offrent plusieurs avantages:
mypy
permettent la vérification des types statiques, qui peuvent capter des erreurs liées au type avant l'exécution. Ceci est particulièrement utile dans les grandes bases de code où la vérification manuelle des types peut être sujette aux erreurs et qui prend du temps.Les conseils de type améliorent la lisibilité et la maintenabilité du code de la manière suivante:
def add(a: int, b: int) -> int:
il sait immédiatement que la fonction prend deux entiers et renvoie un entier. Cette clarté réduit la charge cognitive requise pour comprendre le code.Voici quelques exemples démontrant l'utilisation des indices de type dans les fonctions et variables Python:
Fonction avec des conseils de type :
<code class="python">from typing import List, Tuple def calculate_average(numbers: List[float]) -> float: if not numbers: return 0.0 return sum(numbers) / len(numbers) def format_coordinates(x: float, y: float) -> str: return f"({x:.2f}, {y:.2f})" def process_data(data: Tuple[int, str, float]) -> str: id, name, value = data return f"ID: {id}, Name: {name}, Value: {value:.2f}"</code>
Variables avec des conseils de type :
<code class="python">from typing import List, Dict, Optional scores: List[int] = [85, 90, 78] student_grades: Dict[str, float] = {"Alice": 3.5, "Bob": 3.8} favorite_color: Optional[str] = None</code>
Combinaison des astuces de type avec des valeurs par défaut :
<code class="python">from typing import List def greet(name: str = "World") -> str: return f"Hello, {name}!" def sum_numbers(numbers: List[int] = []) -> int: return sum(numbers)</code>
Utilisation des types d'union et de génériques :
<code class="python">from typing import Union, List, TypeVar T = TypeVar('T') def first_element(items: List[T]) -> T: return items[0] def process_value(value: Union[int, float, str]) -> str: return str(value)</code>
Ces exemples montrent comment les indices de type peuvent être appliqués à différents éléments de code Python, améliorant la lisibilité et la maintenabilité.
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!