回答編集履歴

1

追記された情報に対応しました。

2020/07/29 13:09

投稿

TakaiY
TakaiY

スコア13847

test CHANGED
@@ -3,6 +3,14 @@
3
3
 
4
4
 
5
5
  ただし、pythonでは関数そのものを引数に渡すことができるので、「関数名を渡す」ではなく、「関数を渡す」という形ですが。
6
+
7
+
8
+
9
+ 【追記に対応】
10
+
11
+ 追記された内容には「プログラム内に存在する関数の関数名(div,add等)をfunc関数に渡し、func関数内にて、「渡された関数名(div,add等)」と同じ名前の関数(div()関数, add()関数等)を実行したい」とありますが、このとおりの事がちゃんとできますよ。
12
+
13
+ 参考までにadd関数を追加してみます。
6
14
 
7
15
 
8
16
 
@@ -30,8 +38,30 @@
30
38
 
31
39
 
32
40
 
41
+ def add(a,b):
42
+
43
+ return a+b
44
+
45
+
46
+
33
47
  def main():
34
48
 
49
+ a = 10
50
+
51
+ b = 2
52
+
35
- c = func(div, a,b) # 関数と引数別々の引数して渡す
53
+ c = func(div, a, b) # div 10 2 で呼ぶと 5が返りcに入る
54
+
55
+ d = func(add, a, b) # add を 10 と 2 で呼ぶと 12が返りdに入る
56
+
57
+
36
58
 
37
59
  ```
60
+
61
+
62
+
63
+ だだ、もし、どうしても ` func(div(a, b))` の様に呼び出したいということだとすると、それは、pythonの構文上できないはなしになります。
64
+
65
+
66
+
67
+ これでどうですかね?