teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

説明追加

2021/06/05 06:39

投稿

ppaul
ppaul

スコア24672

answer CHANGED
@@ -4,4 +4,21 @@
4
4
  こういうように関数を返す関数のことを高階関数とよぶようなプログラミング言語もありますが、Pythonでは高階関数とは呼びません。
5
5
  Pythonでは、関数というのはオブジェクトの一種です。全ての関数はオブジェクトを返します。従って、関数を返す関数というのは特別なものとは考えていません。
6
6
 
7
- 単純に、circle_area_funcを呼び出したら関数が返ってきたのでそれをcal1に代入した。そのあとでcal1を呼び出した。というように理解してください。
7
+ 単純に、circle_area_funcを呼び出したら関数が返ってきたのでそれをcal1に代入した。そのあとでcal1を呼び出した。というように理解してください。
8
+
9
+ 関数はオブジェクトであり変数に代入できるというのは、他の言語を使っていた人にとっては分かりにくい場合があります。以下に書いてあることが理解できればあとは簡単です。
10
+
11
+ 例えば、最大値を返すmaxという関数と、最小値を返すminという関数がありますが、これはmaxという変数の値である関数が最大値を返しているのあり、'max'という名前が問題ではありません。
12
+
13
+ ```python
14
+ >>> max(1,2,3)
15
+ 3
16
+ >>> min(1,2,3)
17
+ 1
18
+ >>> max, min = min, max
19
+ >>> max(1,2,3)
20
+ 1
21
+ >>> min(1,2,3)
22
+ 3
23
+ ```
24
+ max, min = min, maxを使って入れ換えると、maxの値である最小値を返す関数は1を返し、minの値である最大値を返す関数は3を返します。