1. TOP
  2. プログラム
  3. ソフト
  4. python
  5. 関数もオブジェクト

関数もオブジェクト

2019-04-29_144519_GX1

オブジェクトとしての関数

Pythoでは、すべてのものがオブジェクト。関数も一人前のオブジェクト
、ですから変数に関数を代入したり、ほかの関数の引数に関数を使ったり
できる。


>>>def answer():
>>> print(42)


>>>answer()
>>>anath = answer

>>>anath()
42
42

引数をわたして関数を実行してみる。
>>>def add_args(arg1, arg2):
>>> print(arg1 + arg2)


>>>def run_sumething_with_args(func, arg1, arg2):
>>> func(arg1, arg2)

>>>run_sumething_with_args(add_args, 5, 9)

14

こゆうのに、*args, **kwargsのテクニックを区も合わせることもできる
任意の数の位置引数を取り、sum()関数は Python の組み込み関数で、
イテラブルな数値(整数、float)引数に格納されている値の合計を計算
する

>>>def sum_args(*args):
>>> return print(sum(args))

>>>def run_with_positional_args(func, *args):
>>> return func(*args)

>>>sum_args(1, 2, 3, 4)

>>>run_with_positional_args(sum_args, 1, 2, 3, 4)

10
10

関数は、リスト、タプル、集合、辞書の要素として使うことができる
関数はイミュータブルなので、辞書のキーとして使うことができる