Les indices de type sont utilisés en Python pour indiquer le type attendu d'une variable ou la valeur de retour d'une fonction. Ils fournissent un moyen de documenter le comportement prévu du code et peuvent aider à détecter les erreurs plus tôt.
Énoncé du problème :
Vous avez le code suivant dans Python 3 :
class Position: def __init__(self, x: int, y: int): self.x = x self.y = y def __add__(self, other: Position) -> Position: return Position(self.x + other.x, self.y + other.y)
Cependant, votre éditeur (PyCharm) signale une erreur, indiquant que la référence à Position dans l'indice de type de __add__ ne peut pas être résolu. Cela soulève la question : Comment pouvez-vous spécifier que le type de retour doit être de type Position ?
Solution :
En Python, il existe trois approches principales pour l'indication de type une méthode avec le type de sa classe englobante, selon la version de Python que vous utilisez :
Python 3.11 :
from typing import Self class Position: def __add__(self, other: Self) -> Self: ...
Python 3.7 avec les annotations d'importation from __future__ :
from __future__ import annotations class Position: def __add__(self, other: Position) -> Position: ...
Python 3.6 et Plus tôt :
class Position: def __add__(self, other: 'Position') -> 'Position': ...
Explication :
Exigence de pré-compilation :
Dans les versions Python antérieures à 3.7, l'utilisation de chaînes dans les conseils de type nécessite que la classe référencée soit définie avant son utilisation dans l'annotation de type. Sinon, vous rencontrerez une NameError.
Considérations :
N'oubliez pas que les astuces de type sont facultatives, mais elles peuvent améliorer considérablement la lisibilité du code, la vérification des erreurs 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!