Ich möchte die Annotationen bei Funktionen oder Klassenmethoden erhalten. Wenn der Typ Hinweise in den Quellcode geschrieben wird, kann ich Typen erhalten, indem ich Attribut __annotations__
bekomme.Wie bekomme ich Annotation von Stub-Dateien (.pyi) zur Laufzeit in Python?
def hoge(n: int): ...
print(hoge.__annotations__) # {'n': <class 'int'>}
Aber ich weiß nicht, wie man Typen in Stub-Dateien (.pyi) geschrieben bekommt.
# .pyi
def fuga(n: int): ...
# .py
def fuga(n): ...
print(fuga.__annotations__) # {}
Gibt es eine coole Methode?
Melvyn, Ihre Meinung ist richtig. Die Art und Weise, wie der Typ zur Laufzeit aus der Stubdatei abgerufen wird, wird nicht offiziell unterstützt. Ich dachte jedoch, dass es durch irgendeine Methode erhalten werden könnte, und stellte eine Frage. Es scheint, dass 'mypy' den Syntaxbaum erstellt und Typhinweise erhält. Wenn wir den Syntaxbaum zur Laufzeit abrufen und ihn mit dem Syntaxbaum der Stub-Datei vergleichen, ist es möglich, einen Typhinweis zu erhalten. Aber ich gab auf, weil es zu schwierig ist. Danke. – Hiroshiba