Python.use(better) #関数オブジェクト
‖記事一覧‖
Python.use(better)《Python3.1》
関数オブジェクト
《著》森こねこ、小粒ちゃん@湘南組《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/23 ● 第2版♪2004/06/01 ● 第3版♪2009/02/28
Python で作成した事例を介して「OOP」の理解を深めます。
※ Python1.5 で作成した例題を、Python3.1 で再構成しました。
■ モジュールを利用する
任意のモジュールを取り込むには、from/import 文を利用します。
>>> sqrt Traceback (most recent call last): File "", line 1, in sqrt NameError: name 'sqrt' is not defined
sqrt は既存の組み込み関数ではないので、例外 NameError を生成します。from/import 文を利用すると、
>>> from math import sqrt
from に続くモジュール math の中から、import に続く変数 sqrt を介して、関数オブジェクトを参照できるようになります。
>>> sqrt>>> type(sqrt); hex(id(sqrt)) '0x123b738'
(他のオブジェクトと同様に)関数オブジェクトも型 type を持ち、固有の識別情報 id を持ちます。
■ 関数の属性
(他のオブジェクトと同様に)関数オブジェクトの属性を参照するには、アクセス演算子「.」の後に属性名を指定します。
特殊属性 .__class__ を参照すると、
>>> sqrt.__class__>>> sqrt.__class__.__name__ 'builtin_function_or_method'
その関数オブジェクトが属するクラスオブジェクトが得られます。その出力を見ると、組み込み関数 type によって得られる情報と同じだと分かります。
特殊属性 .__doc__ を参照すると、
>>> sqrt.__doc__ 'sqrt(x)\n\nReturn the square root of x.' >>> print(_) sqrt(x) Return the square root of x.
その関数オブジェクトに関する文書化文字列が得られます。その出力を見ると、
>>> help(sqrt) Help on built-in function sqrt in module math: sqrt(...) sqrt(x) Return the square root of x. >>>
組み込み関数 help によって得られる情報と同じだと分かります。
>>> def piyo(): "as happy as happy can be" >>> help(piyo) Help on function piyo in module __main__: piyo() as happy as happy can be >>>
↑TOP
》作業中です《