Python3.0のアノテーションを使ってみる
30分プログラム、その525。What’s New In Python 3.0 — Python v3.0.1 documentationを眺めていたら、関数アノテーションがおもしろそうだったので、試してみる。
# 引数にアノテーションをつける def compile(source: "something compilable", filename: "where the compilable thing comes from", mode: "is this a single statement or a suite?"): ... # 返り値にアノテーションをつける def sum() -> expression: ...
のように、関数の引数や戻り値に自由に情報を付加できる。任意のPythonの式をアノテーションとして使える。無限ループになる式を書いてみたら、普通にスタックオーバーフローした。
で、つけたアノテーションの利用方としては、型チェックとか関数オーバーロードとかいろいろあるらしいけど、今回は無難にドキュメントの自動生成のために使ってみる。
使い方
# 普通に実行する $ python3.0 fact.py [11] #ドキュメントの表示 $ pydoc3.0 fact.prime_factor Help on function prime_factor in fact: fact.prime_factor = prime_factor(p: '素数') -> ['素因数分解した結果'] どんな素数も素因数分解する関数
ソースコード
#! /usr/bin/python3.0 def prime_factor(p : "素数") -> ["素因数分解した結果"]: 'どんな素数も素因数分解する関数' return [p] if __name__ == '__main__': print(prime_factor(11))