関数アノテーション
今日は、『Head First Python』4章 "コードの再利用" で学んだことをアウトプットします。
関数にはコードと(通常は)ドキュメント(説明)を入れる
コードはdef行よりも1段階インデントし、適宜コメントを補います。コメントを追加するには、”””で囲んだ文字列を使う方法(docstring)と、#記号を前につけて単一行コメントにする方法の2つがあります。docstringは関数の目的を説明します。
def a_descriptive_name(optional_arguments):
"""ドキュメンテーション文字列"""
# ここに関数のコードが入る。
# ここに関数のコードが入る。
# ここに関数のコードが入る。
return optional_value
アノテーションを使ってドキュメントを改善する
Python 3はアノテーション(型ヒントとも呼ばれています)という概念をサポートしています。アノテーションを使うと、戻り値の型と引数の型を(標準的な方法で)記述します。
関数アノテーションはオプションで、使わなくても問題ありません。また、アノテーションから関数に関する詳細がわかりますが、その他の振る舞い(型チェックなど)はしません。
実際の関数の引数にアノテーションを付けてみると、下記のようになります。
def search4vowels(word:str) -> set:
"""指定された単語内の母音を返す"""
vowels = set('aeiou')
return vowels.intersection(set(word))
1番目のアノテーションはこの関数が引数wordの型として文字列を期待していることを示し(:str)、2番めのアノテーションは呼び出し側に集合を返すことを示しています(- > set)。
なぜ関数アノテーションを使うのか?
プログラマにとってのアノテーションの役割は、関数に渡す型や関数から返される型を調べるために関数のコードを読まなくてもいいようにすることです。
アノテーションを使わないと、プログラマは関数のコードを読まなければいけません。最適に書かれたdocstringでさえ、やはりアノテーションが含まれていないと読まなければいけません。
アノテーションは組み込み関数helpで表示することができます。
>>> help(search4vowels)
Help on function search4vowels in module __main__:
search4vowels(word: str) -> set
指定された単語内の母音を返す
サポート、本当にありがとうございます。サポートしていただいた金額は、知的サイドハッスルとして取り組んでいる、個人研究の費用に充てさせていただきますね♪