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

回答編集履歴

1

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

2020/07/29 13:09

投稿

TakaiY
TakaiY

スコア14602

answer CHANGED
@@ -2,7 +2,11 @@
2
2
 
3
3
  ただし、pythonでは関数そのものを引数に渡すことができるので、「関数名を渡す」ではなく、「関数を渡す」という形ですが。
4
4
 
5
+ 【追記に対応】
6
+ 追記された内容には「プログラム内に存在する関数の関数名(div,add等)をfunc関数に渡し、func関数内にて、「渡された関数名(div,add等)」と同じ名前の関数(div()関数, add()関数等)を実行したい」とありますが、このとおりの事がちゃんとできますよ。
7
+ 参考までにadd関数を追加してみます。
5
8
 
9
+
6
10
  ``` python
7
11
  def func(hoge, *args):
8
12
  try:
@@ -14,6 +18,17 @@
14
18
  def div(a,b):
15
19
  return a/b
16
20
 
21
+ def add(a,b):
22
+ return a+b
23
+
17
24
  def main():
25
+ a = 10
26
+ b = 2
18
- c = func(div, a,b) # 関数と引数別々の引数して渡す
27
+ c = func(div, a, b) # div 10 2 で呼ぶと 5が返りcに入る
28
+ d = func(add, a, b) # add を 10 と 2 で呼ぶと 12が返りdに入る
29
+
19
- ```
30
+ ```
31
+
32
+ だだ、もし、どうしても ` func(div(a, b))` の様に呼び出したいということだとすると、それは、pythonの構文上できないはなしになります。
33
+
34
+ これでどうですかね?