回答編集履歴
1
例をわかりやすいものに。
answer
CHANGED
@@ -5,19 +5,20 @@
|
|
5
5
|
pythonの変数に型はありません。 ですが、その時点で束縛しているオブジェクト(インスタンス)の型を持つと思えばいいでしょう。
|
6
6
|
|
7
7
|
```python
|
8
|
+
x = [1, 2, 3]
|
9
|
+
y = x.count(3)
|
10
|
+
print(y) # -> 1が表示される。
|
8
11
|
|
9
|
-
|
12
|
+
x = "abc"
|
10
|
-
|
13
|
+
y = x.upper()
|
11
|
-
print(
|
14
|
+
print(y) # -> ABCが表示される。
|
12
|
-
|
13
|
-
x = "10"
|
14
|
-
x = x + "20"
|
15
|
-
print(x) # -> 1020が表示される。
|
16
15
|
```
|
17
16
|
|
18
|
-
始めのxには
|
17
|
+
始めのxにはlistのインスタンスが束縛されていて、.cont(3) では含まれる3の数を数えます。
|
19
|
-
次に、同じxにstr(文字列)
|
18
|
+
次に、同じxにstr(文字列) abc のインスタンスが束縛されて、 .upper() では、大文字に変換されます。
|
20
19
|
|
20
|
+
xがリストのときには、リストのメソッドが使え、xが文字列のときには文字列のリストが使えるということになります。
|
21
|
+
|
21
22
|
> .append()メソッドは通常の関数と呼び出され方が異なるのはなぜか?
|
22
23
|
|
23
24
|
通常の関数と同じ呼び出されかただと思いますが、どのように違うと思うのでしょう?
|
@@ -27,4 +28,7 @@
|
|
27
28
|
説明したように、Aにはこの時点で、リストのインスタンスが束縛されています。pythonの構文では、A.append は 変数Aのappendメソッドではなく、その時点でAに束縛されているオブジェクト(インスタンス)のappendメソッドが呼び出されます。
|
28
29
|
|
29
30
|
|
30
|
-
pythonの変数に型(クラス)は無く、操作は、その時点で束縛しているオブジェクトに作用するということです。
|
31
|
+
pythonの変数に型(クラス)は無く、操作は、その時点で束縛しているオブジェクトに作用するということです。
|
32
|
+
|
33
|
+
|
34
|
+
ただ、このように同じ変数に違う型のオブジェクトを束縛するような使いかたは混乱するので、実際にプログラミングをするときにはあまり使いませんね。
|