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

回答編集履歴

1

追記

2018/03/03 03:20

投稿

YouheiSakurai
YouheiSakurai

スコア6154

answer CHANGED
@@ -2,4 +2,11 @@
2
2
 
3
3
  次に`Sain()`の正しい実行方法は`Hello().Sain()`です。`Hello()`でHelloクラスのインスタンスを生成、続けて`.Sain()`でそのインスタンスのメソッドを呼び出します。こうすることで`def Sain(self):`の`self`にHelloクラスのインスタンスが渡されます。
4
4
 
5
- 最後に`Hello.Sain("")`とした場合に関しては、Helloクラスのインスタンスを生成**せず**に`def Sain(self):`の`self`に`""`を渡します。そういう使い方をするケースもあることにはありますが、あまり良い使い方ではないと思います。
5
+ 最後に`Hello.Sain("")`とした場合に関しては、Helloクラスのインスタンスを生成**せず**に`def Sain(self):`の`self`に`""`を渡します。そういう使い方をするケースもあることにはありますが、あまり良い使い方ではないと思います。少なくともそういう使い方をするなら以下のようにクラスメソッドとして定義するよ良いと思います。
6
+
7
+ ```python
8
+ class Hello():
9
+ @classmethod
10
+ def Sain(cls, arg1):
11
+ return "Hello world"
12
+ ```