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 で再構成しました。
関数:定義 Defining Functions
2つの引数の和を求める関数 add を定義します。
def add(a,b): return a+b
キーワード def に続いて、関数を定義します。
- 関数の名前 add の後には、括弧 () の中に仮引数 a,b を列挙します。
- コロン「:」を境に、関数の本体を記述します。
def add(a,b):
return a+b
関数の本体が複数行になるときには、そこで改行します。
- このとき、関数の本体にはインデントを施す必要があります。
《Note》引数を省略:引数を省略しても、括弧 () は省略できません。
def piyo(): pass
《Note》本体を省略:本体は省略できません。
def piyo(): pass
そのため、空文として pass が必要です。
《Note》何もしないことに意義がある:構文規則に従うと、そこに文を記述する必要があっても、そこで何も実行したくないときには、空文として pass を利用します。
関数:リターン値
return a+b
関数が値を返すときには、return の後に式 a+b を記述します。
- 式を評価した結果が、関数のリターン値になります。
《Note》リターン値を省略:return を省略すると、リターン値として None が得られます。つまり、
def piyo(): pass
と、
def piyo(): return None
とは、同じ結果になります。
関数:呼び出し
7関数を呼び出すときには、演算子 () を利用します。
- 関数の名前 add の後には、演算子 () の中に実引数 3,4 を列挙します。
- 仮引数 a,b には、それぞれ実引数 3,4 が対応します。
- すると、式 a+b を評価した 3+4 が、関数のリターン値 7 になります。
関数オブジェクト:
関数も「オブジェクト」として、他のオブジェクトと同等に扱えます。すると、- 変数を介して任意の「オブジェクト」を参照できるように、
- 関数名を介して任意の「関数オブジェクト」を参照できます。
>>> add
<function add at 0x125d150>
関数名 add を介して、関数オブジェクト >>> f = add関数名は、変数と見なせます。そのため、変数 f を介して、関数オブジェクト add を参照できます。
>>> f(3,4) 7変数 f に呼び出し演算子 () を適用すると、関数呼び出しと同じ結果が得られます。
関数オブジェクト:関数名
def add(a,b): return a+b def sub(a,b): return a-b def mul(a,b): return a*b def div(a,b): return a//b新たに4つの関数を定義します。すると、
>>> for f in add,sub,mul,div: f, f(5,3) (for に続く制御変数 f を介して、各関数オブジェクトを順に参照できます。2つの実引数 5,3 に対して、加減乗除した結果が得られます。 》こちらに移動中です《 ↑TOP, 8) ( , 2) ( , 15) ( , 1)
関連記事
- Python への扉
- 4. More Control Flow Tools — Python v3.1.5 documentation ¶ 4.6. Defining Functions
- INDEX《Python》def
- INDEX: R《Python》return
- INDEX《Python》pass
- INDEX《Python》None
Last updated♪2009/11/14