関数(Function)

SYNTAX def 関数名 ( arg ): statement
def f(): print "test";
返値は複数個を指定をできる
def f(): return 1, 2 a, b = f() # リストを2つ返す def f(): return ["aaa", "bbb"], ["ccc"]



変数のスコープ

関数内の変数はローカルになる
g = 20 def test(): # ローカル i = 10 # グローバルも参照できる print g # グローバルの値を変更するには global 文を利用する global g = 10



引数(Argument)

python デフォルト引数 デフォルト引数を利用するときは 引数の後に デフォルト値を設定する は関数を呼ぶときに省略できる。
dialogbox( msg="test", title="title"): # デフォルト値があるパラメータは省略できる。 dialogbox()
WARNING デフォルト値は一度しか評価されない。 関数呼び出し毎には評価されない。 複数のデフォルト引数から、特定の引数だけ値を設定する場合はキーワード引数を使う。 引数を指定しない場合はパラメータが順番に渡される。
dialogbox( title="Prompt" );
キーワードを指定しない場合は 0 番目の引数から順番にわたる
dialogbox( "Prompt" );
WARNING 固定の引数の後に指定する必要がある。( 可変なため )
# ERROR test( arg1="foo", 10 )



可変引数

*args に可変引数をタプルとして受け取り, **kwargs でキーワード引数を Dictionary として受け取る
def func(*args, **kwargs): print args print kwargs func( "a", 1, 2, test=1, foo="2" )



無名関数(lambda)

SYNTAX lambda argument : expression DESC 単一の式で値を返す処理は 無名関数として定義できる
mul2 = lambda x : x * 2 ret = mul2( 10 )



高階関数

関数を引数としてもらう関数のこと 関数をもらうことができるので、具体的な処理をパラメータ化できる。 関数ポインタのように扱うことができる。
def compare( x,y ): a = [ 1, 2, 3, 4 ] a.sort( compare )