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)

(, 8)
(, 2)
(, 15)
(, 1)
for に続く制御変数 f を介して、各関数オブジェクトを順に参照できます。2つの実引数 5,3 に対して、加減乗除した結果が得られます。 》こちらに移動中です《TOP

関連記事

Last updated♪2009/11/14