Можете ли вы определить подсказку типа для переменной, определенной с помощью with
синтаксиса?
with example() as x:
print(x)
Я хотел бы напечатать подсказку выше, чтобы сказать, что x
это str
(в качестве примера).
Единственный обходной путь, который я нашел, - это использование промежуточной переменной, но это кажется хакерским.
with example() as x:
y: str = x
print(y)
Я не могу найти пример в печатной документации .
x
когда это просто возвращаемый тип example.__enter__
? В идеале вы аннотировали этот метод / функцию.
x
не возвращаемое значение example
; это возвращаемое значение example().__enter__()
.
example
. Аннотирование example.__enter__
означает одну аннотацию, в то время как при вашем подходе вам придется аннотировать во всех местах, где используется этот диспетчер контекста, а также вообще, как пользователь должен знать, какой тип возвращаемого API в любом случае есть, если он не предоставляется?
x
качестве возвращаемого типаexample().__enter__()
?