Pythonにおける変数としての関数
Pythonにおいて、関数は本質的に 変数です。これは、関数を 受け渡しできることを意味します。
感嘆符を返す関数があるとします:
def func():
return '!'
丸括弧なしで関数名を変数として
printに渡してみましょう:
print(func)
コード実行後、この関数に関する情報を 含む特殊なオブジェクトがコンソールに 出力されます:
<function func at 0x0000022816383E20>
次に、変数func2を宣言し、
その値に関数func1を渡しましょう。
関数自体は値ではなく、オブジェクトとして
参照によって渡されます。そして
丸括弧付きでfunc2を呼び出すと、
コンソールにはfunc1の実行結果が
出力されます:
def func1():
print('!')
func2 = func1
func2() # '!'を出力する
次のコードを実行した結果は どうなりますか:
def func():
print('hello, user!')
greet = func
print(greet)
次のコードを実行した結果は どうなりますか:
def getSum(num1, num2):
res = num1 + num2
return res
func = getSum
print(func(2, 3))