Python.use(better) #def: 関数 -- 関数オブジェクト
‖記事一覧‖ Python.use(better)《Python3.1》
def: 関数 -- 関数オブジェクト
《著》森こねこ、小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/25 ● 第2版♪2004/06/01 ● 第3版♪2009/02/28
「関数」に関する基本的な理解を深めます。
※ Python1.5 で作成した例題を、Python3.1 で再構成しました。
関数:関数オブジェクト
関数も「オブジェクト」として、他のオブジェクトと同等に扱えます。すると、
- 任意の「インスタンスオブジェクト」が、特定の「クラス」に属するように、
- 任意の「関数オブジェクト」も、特定の「クラス」に属します。
組み込み関数:dir
>>> f = add
>>> dir(f)
['__annotations__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__globals__', '__gt__', '__hash__', '__init__', '__kwdefaults__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
任意のオブジェクトに関する属性リストが得られます。すると、関数オブジェクト f には、
- 有効な属性 __class__, __doc__, __name__ などが含まれるのが分かります。
組み込み関数:type
>>> type(f)
任意のオブジェクトに関する型情報が得られます。すると、関数オブジェクト f は、
- その型(クラス)が function だと分かります。
属性 __class__ を参照すると、そのインスタンスが属するクラスが得られます。
- 関数オブジェクト f のクラスが function だと分かります。
関数:名前
'add'属性 __name__ を参照すると、関数の名前を表わす文字列が得られます。関数:文書化文字列
def add(a,b): "implement the binary arithmetic operations" return a+b関数の本体の先頭行には、文書化文字列を記述できます。'implement the binary arithmetic operations'属性 __doc__ を参照すると、文書化文字列として記述した内容が得られます。
- 何も記述していないと(空文字列 "" ではなく)None が得られます。