Können Sie den Typhinweis für eine mit der withSyntax definierte Variable definieren ?
with example() as x:
print(x)
Ich möchte den obigen Hinweis eingeben, um zu sagen, dass dies xein str(als Beispiel) ist.
Die einzige Lösung, die ich gefunden habe, ist die Verwendung einer Zwischenvariablen, aber das fühlt sich hackig an.
with example() as x:
y: str = x
print(y)
Ich kann kein Beispiel in der Schreibdokumentation finden .
xwenn es sich lediglich um den Rückgabetyp handelt example.__enter__? Idealerweise haben Sie diese Methode / Funktion mit Anmerkungen versehen.
xist nicht der Rückgabewert von example; Es ist der Rückgabewert von example().__enter__().
example. example.__enter__Annotieren bedeutet eine Annotation, während Sie bei Ihrem Ansatz an allen Stellen, an denen dieser Kontextmanager verwendet wird, Annotationen vornehmen müssten. Außerdem , wie soll ein Benutzer im Allgemeinen wissen, was der Rückgabetyp einer API überhaupt ist, wenn er nicht bereitgestellt wird?
xals Rückgabetyp von abzuleitenexample().__enter__()?