私はPythonソースコードをいくつか持っており、変数の型を探したいと思っています。例えば、文字列が与えられた場合ライブラリとしてMyPyを使用してPython式で型を取得する
"""
greeting = "Hello"
"""
私はget_type('greeting') == str
を持っています。またはより複雑な例:擬似コードで
"""
def test(input: str):
output = len(input)
return str
"""
、私のような何かをできるようにしたい:
これは、Python 3での型注釈とMyPyで可能である必要がありそうです>>> m = parse_module()
>>> m.functions['test'].locals['output'].get_type()
int
が、私方法を理解することはできません。 VSコードのようなIDEは、Pythonコードの型を推測する上で非常に優れています。そのため、これを行うための公開された方法があるはずです。
MyPyでも使用されているモジュールtyped-astがあるようですが、そこに私の道があります。しかし、これは型推論も伝播もしません。私が理解する限り、明示的な注釈を与えます。 MyPyをapiとして使用しますが、チェッカーを実行するだけで、コマンドラインツールと同じエラーメッセージが返されます。私はMyPyに「手を伸ばす」方法を模索しており、推測された情報をいくつか取り上げています。
'inspect'モジュールを使用することができます。 Pythonのイントロスペクションヘルパーです。 –
あなたは 'type()'関数を使うだけでは困惑しますか? – Joe
私はコードを文字列として持っており、実行したくありません。私は、ソースコードに含まれる変数の種類を取得したい。 – jdm