2017-07-18 5 views
1

aaa: print(1)をPython 3.6に入力すると、エラーなしで1が印刷されます。Pythonではvariable:expressionの意味は何ですか?

私はどの変数を知りたいですか?表現はPythonでの意味です。

私はGoogle検索し、これに関連するドキュメントを見つけることができません。

答えて

2

可変注釈です(PEP 526に記載)。その式を実行することによって、aの型にNoneというアノテーションを付けました。これはあまり意味がないprint呼び出しの戻り値です。あなたは、__annotations__を印刷することにより、モジュールの名前、種類との関係を(あなたのケースでは、モジュールは、おそらく__main__になります)を保持している辞書をこれを見ることができます

print(__annotations__) 
{'aaa': None} 

Pythonはありませんこれらを使って何かを実行すると、print(1)という式が出力され、の式が実行され、その呼び出しの戻り値を使用してaの名前が付けられます。独自の目的のために使用するのは、mypyのような型チェッカーです。

+0

これはPython 3.6のものですか?私は3.5.2 –

+0

@RickyHanでそれを見ることはできません。 3.5.2でSyntaxErrorを取得する必要があります(また、モジュールの '__annotations__'も存在しません) –

関連する問題