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

回答編集履歴

1

追記

2019/09/17 03:55

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -3,7 +3,6 @@
3
3
  selfもインスタンスです。
4
4
  慣習的にselfと名付けているだけで、別名を付けても仕様上は問題ありません。
5
5
 
6
-
7
6
  次の二つのコードは全く同じように動作します。
8
7
  ```Python
9
8
  class Spam:
@@ -17,4 +16,23 @@
17
16
  x.do_something()
18
17
  ```
19
18
 
20
- なお、 s = Spam() のとき、 s.method() は Spam.method(s) と書くこともできます。
19
+ なお、 s = Spam() のとき、 s.method() は Spam.method(s) と書くこともできます。
20
+
21
+ ---
22
+ インスタンスメソッドの第一引数が『自分自身』を指すことは、簡単に確認できます。
23
+ ```Python
24
+ class Spam:
25
+ def introduce_a(self):
26
+ print(self)
27
+
28
+ def introduce_b(x):
29
+ print(x)
30
+
31
+
32
+ s = Spam()
33
+ print(s) # => <__main__.Spam object at 0x7f55f3ebc0b8>
34
+ s.introduce_a() # => <__main__.Spam object at 0x7f55f3ebc0b8>
35
+ s.introduce_b() # => <__main__.Spam object at 0x7f55f3ebc0b8>
36
+ ```
37
+
38
+ アドレスは毎度変わり得ますが、全て同一であることが確認できれば充分です。