なぜ、python と表示されるのか、とありますが、表示されるのは Python ですね。
まずはかたい説明です。
explanation
1このコードではまず ClassA を定義しています。
2次に ClassA を 基底クラスとする派生クラスである ClassB を定義しています。
3派生クラスは上書きしないかがいり基底クラスのメソッドを継承します。
4従ってClassBはClassAのメソッドget__messageを継承します。
5ClassBは__init__を上書きしているのでClassAのメソッド__init__を継承しません。
6
7Class()が呼び出されたとき、特殊メソッド__init__が呼び出されるので、インスタンス変数self.messegeには"Python"という文字列が代入されます。
8
9obj.get__message()が呼び出されるとメソッドget__messageはそのインスタンスのインスタンス変数self.messegeの値を返します。この場合は"Python"という文字列を返します。
10print関数は返ってきた文字列である"Python"を印字します。
11
次にやわらかい説明です。
以下のコードを見てください。(ちゃんと動きます)
python
1class ほ乳類:
2 def __init__(self):
3 self.子作り = "出産"
4 def 子作り方法(self):
5 return self.子作り
6
7class ネズミ(ほ乳類):
8 pass
9
10class カモノハシ(ほ乳類):
11 def __init__(self):
12 self.子作り = "産卵"
13
14チュー子 = ネズミ()
15print(チュー子.子作り方法())
16カモ子 = カモノハシ()
17print(カモ子.子作り方法())
実行すると、
python
1>>> チュー子 = ネズミ()
2>>> print(チュー子.子作り方法())
3出産
4>>> カモ子 = カモノハシ()
5>>> print(カモ子.子作り方法())
6産卵
このコードを説明します。
ネズミというのは全てのネズミの集まったものです。
カモノハシというのは全てのカモノハシの集まったものです。
そういうものの他にライオンやら人間やらが集まったものがほ乳類です。
これをネズミとカモノハシはどちらもほ乳類の一種だといいます。
Pythonではまずほ乳類というクラスを作ります。そしてほ乳類の一種であるネズミをほ乳類の派生クラスとして作ります。
ほ乳類には毛があるとか、出産で子供を作るとか、ミルクで子供を育てるとかの性質があります。
ネズミは出産しますが、それをいちいち書かなくてもほ乳類が出産するのでそれがわかります。これのことを継承と呼んでいます。
カモノハシはミルクで子供を育てるのでほ乳類ですが出産ではなく産卵で子供を作ります。
Pythonでは、こういう場合には子作りを上書きすることで変更することができます。
子作り方法を問い合わせるメソッドは、ネズミもカモノハシも、それぞれが持っている子作りを返事すれば良いので特に定義しなくてもほ乳類の子作り方法を使えば良いのです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/19 01:02