今日も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 コメント:
コメントを投稿