3

いくつかの Python ソース コードがあり、変数の型を調べたいと考えています。たとえば、文字列が与えられた場合

"""
greeting = "Hello"
"""

したいget_type('greeting') == str。または、より複雑な例:

"""
def test(input: str):
    output = len(input)
    return str
"""

疑似コードでは、次のようなことができるようにしたい:

>>> m = parse_module()
>>> m.functions['test'].locals['output'].get_type()
int

これは、Python 3 の型注釈と MyPy で可能になるはずですが、方法がわかりません。VS コードのような IDE は、Python コードの型を推測するのが非常に得意になっています。

モジュールtyped-astがあり、MyPy でも使用されているようで、そこに行く途中です。ただし、これは型の推論や伝播は行いません。私が理解している限り、明示的な注釈を提供するだけです。MyPy を API として使用しますが、チェッカーを実行することしかできず、コマンド ライン ツールと同じエラー メッセージが返されます。MyPy に「到達」し、推測された情報の一部を取得する方法、または考えもしなかった代替ソリューションを探しています。

4

1 に答える 1