Pouvez-vous définir l'indice de type pour une variable définie avec la with
syntaxe?
with example() as x:
print(x)
Je voudrais taper l'indice ci-dessus pour dire que x
c'est un str
(à titre d'exemple).
Le seul problème que j'ai trouvé est d'utiliser une variable intermédiaire, mais cela semble hacky.
with example() as x:
y: str = x
print(y)
Je ne trouve pas d'exemple dans la documentation de frappe .
x
alors que c'est simplement le type de retour de example.__enter__
? Idéalement, vous avez annoté cette méthode / fonction.
x
n'est pas la valeur de retour de example
; c'est la valeur de retour de example().__enter__()
.
example
. L'annotation example.__enter__
signifie une annotation alors qu'avec votre approche, vous devrez annoter dans tous les endroits où ce gestionnaire de contexte est utilisé, plus en général comment un utilisateur est-il censé savoir quel est le type de retour d'une API s'il n'est pas fourni?
x
comme type de retourexample().__enter__()
?