Можете ли вы определить подсказку типа для переменной, определенной с помощью 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__()?