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

回答編集履歴

4

追記

2019/12/09 13:48

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -20,4 +20,37 @@
20
20
  > 前者は「関数」、後者なんなのでしょうか?
21
21
 
22
22
  この場合関数ではなくメソッドですね。
23
- 前者は『メソッドそのもの』を返し、後者は『メソッドを呼び出した結果』を返します。
23
+ 前者は『メソッドそのもの』を返し、後者は『メソッドを呼び出した結果』を返します。
24
+
25
+ 活用例
26
+ ---
27
+ 例えば高階関数を活用する際には、『関数/メソッドそのもの』を受け渡しする必要があります。
28
+
29
+ **一番長い文字列を選ぶ**
30
+
31
+ ```Python
32
+ >>> lst = ['spam', 'ham', 'egg', 'foo', 'bar', 'foobar']
33
+ >>> max(lst, key=len)
34
+ 'foobar'
35
+ ```
36
+
37
+ **0~9の値が登場する回数を調べる**
38
+
39
+ ```Python
40
+ >>> lst
41
+ [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4, 6, 2, 6, 4, 3, 3, 8, 3, 2, 7, 9, 5, 0, 2, 8]
42
+ >>>
43
+ >>> for n in map(lst.count, range(10)):
44
+ ... print(n)
45
+ ...
46
+ 1
47
+ 2
48
+ 5
49
+ 7
50
+ 3
51
+ 4
52
+ 3
53
+ 2
54
+ 4
55
+ 4
56
+ ```

3

追記

2019/12/09 13:48

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -17,4 +17,7 @@
17
17
  TypeError: 'int' object is not callable
18
18
  ```
19
19
 
20
- > 前者は「関数」、後者なんなのでしょうか?
20
+ > 前者は「関数」、後者なんなのでしょうか?
21
+
22
+ この場合関数ではなくメソッドですね。
23
+ 前者は『メソッドそのもの』を返し、後者は『メソッドを呼び出した結果』を返します。

2

追記

2019/12/09 13:39

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -15,4 +15,6 @@
15
15
  Traceback (most recent call last):
16
16
  File "<stdin>", line 1, in <module>
17
17
  TypeError: 'int' object is not callable
18
- ```
18
+ ```
19
+
20
+ > 前者は「関数」、後者なんなのでしょうか?

1

修正

2019/12/09 13:38

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -8,14 +8,9 @@
8
8
  <built-in method sort of list object at 0x000001DCA552DA48>
9
9
  ```
10
10
 
11
+ 他のオブジェクトにも括弧を付けることも、**構文上は**可能です。
12
+ 呼び出し可能オブジェクトでないのなら当然エラーを吐きますが。
11
13
  ```Python
12
- >>> print(print)
13
- <built-in function print>
14
- ```
15
-
16
- 他のオブジェクトにも括弧を付けることも、構文上は可能です。
17
- 当然エラーを吐きますが。
18
- ```Python
19
14
  >>> 1()
20
15
  Traceback (most recent call last):
21
16
  File "<stdin>", line 1, in <module>