抜粋翻訳 PEP 3107 Function Annotations
根拠
Python 2.x 系は関数の引数と返り値を修飾する方法を持たなかったため、数多くのツールやライブラリがそのギャップを埋めるために現れた。いくつかは PEP 318 で導入されたデコレータを使い、他のいくつかは関数のドキュメンテーション文字列をパースしてアノテーションを探す。
このPEPは、このような情報を指定する、唯一の標準的な方法を提供し、今現在幅広い方法と構文のバリエーションが引き起こしている混乱を軽減することを目指している。
関数アノテーションの前提
- 関数アノテーションは、パラメータと戻り値の両方とも、完全に任意。
- 関数アノテーションはコンパイル時に任意のPythonの式を関数のさまざまな部分に関連付ける方法以上のなにものでもない。Pythonそれ自体はアノテーションに特定の意味をもたせることはしない。
def compile(source: "something compilable", filename: "where the compilable thing comes from", mode: "is this a single statement or a suite?"): ...
def haul(item: Haulable, *vargs: PackAnimal) -> Distance: ...