メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2008年2月8日金曜日

[Python][お勉強] Python入門(24) - 関数

今日もPythonのお勉強。
今日は「関数」をやる。


defステートメント
Syntaxは、


def <name>(arg1,arg2,...argN):
<statement>

な感じ。
defステートメントはネストできるので上記statement部でdefステートメントを書くこともできる。
arg1からargNは、もし引数があれば引数名を書く。なければ何も書かない。


returnステートメント
関数の処理結果を呼び出し元に返すのに使用する。
defステートメント中にreturnステートメントを記述しない場合は、その関数はNoneオブジェクトを返す。
また、returnステートメントはどこにでも書ける。


def aaa():
return 10

とあった場合は、呼び出し元に10を返す。

引数
関数を呼び出す時点で引数が(もしあれば)「代入」される。

>>> def aaa(aa,bb):
... return aa * bb
...
>>> aaa(10,20)
200
>>>


ここで10という値は引数aaに代入される。
20という値は引数bbに代入される。

関数オブジェクト
defステートメントで定義された関数もオブジェクトの一種。
defステートメントが書かれると、関数オブジェクトが生成され、関数名でつけた名の変数に代入される。


関数の呼び出し
関数を呼ぶには、

<name>(arg1,arg2...argN)

と書いてやればよい。

例)

>>> def aaa(a,b):
... print "a=%d" % a
... print "b=%d" % b
... return a * b
...
>>> aaa(5,6) # 関数呼び出し
a=5
b=6
30


値は30を返す。


ローカル変数
関数の中で代入された変数は、ローカル変数となる。
つまりその関数の中でのみ有効な変数となる。

>>> xxx = 100
>>> def aaa():
... xxx = 20
... print xxx
...
>>> aaa()
20
>>> print xxx
100
>>>


上記ではxxxという変数がトップレベルで定義されているが、
defステートメントの中のxxxはdefステートメントの中でだけ有効であるので、
関数呼び出し後のprint xxxではxxxは100のままとなる。

xxxをローカル変数とせずにグローバル変数として扱いたい場合は、
globalステートメントを使用する。



おしまい。
.

0 コメント: