引数としての関数
Pythonでは引数として関数を渡すことができます。以下の例のfooは「引数として受け取った関数を実行する」関数です。
# test.py def foo(func): func() def bar(): print "bar" foo(bar)
実行結果
[root@localhost ~]# python test.py bar
たしかに引数として渡した関数barが実行されています!そういえばschemeを勉強したときにも、こうしたことがあったような...
返り値としての関数
引数の逆として、「関数の返り値」としての関数もあります。
#test2.py def foo(): def bar(): print args return bar print foo()
[root@localhost ~]# python test2.py <function bar at 0x7f362b334c08>