抜粋翻訳 PEP 3107 Function Annotations

概要

このPEPはPythonの関数に、任意のメタデータを追加するための構文を導入する。

根拠

Python 2.x 系は関数の引数と返り値を修飾する方法を持たなかったため、数多くのツールやライブラリがそのギャップを埋めるために現れた。いくつかは PEP 318 で導入されたデコレータを使い、他のいくつかは関数のドキュメンテーション文字列をパースしてアノテーションを探す。

このPEPは、このような情報を指定する、唯一の標準的な方法を提供し、今現在幅広い方法と構文のバリエーションが引き起こしている混乱を軽減することを目指している。

関数アノテーションの前提

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:
    ...