Python 無料で独習 016 継承 

Python
この記事は約3分で読めます。

継承とは前回のクラスに付随する機能だそうです。
前回はクラスを説明するのに家の設計図をもとに
家を建てていく例えでしたが、
今回はクラスの説明を車で例えていました。
                   
                        車という基本設計
    ↓                               ↓           ↓
トヨタ          日産         BMW
↓  ↓        ↓  ↓       ↓  ↓ 
車A 車B       車C  車D      車E  車F

図のようにトヨタという車メーカーは
車という概念、設計 を継承して自社の車を製造しています。
今回学習する継承とはこの親子関係のような概念だそうです。

まずは前回のクラスコードを元に進んでいきます。
このコードを元に継承をします。
このPersonを元にサイヤ人を作ります。
サイヤ人らしく、属性に戦闘力(strength)を追加します。

class Person:
  #初期設定
  def __init__ (self,name,nationality,age):
    self.name = name
    self.nationality = nationality
    self.age = age

  def __call__(self):
    print('ここはcall関数です。')

  def say_hello(self,name):
    print('こんにちは、{}さん。私は{}です。'.format(name,self.name))

class Saiyan(Person):
  def __init__ (self,name,nationality,age,strength):
    #superは親クラス(ここではPerson)を指します。 
    #親の属性を呼び出して新たにstrengthを追加。
    super(). __init__ (self,name,nationality,age)
    self.strength = strength

これで人間を継承したサイヤ人のクラスを作成しました。
あとは悟空という個人(インスタンス)を作成します。

goku = Saiyan('悟空','惑星ベジータ',20,10000)
goku.name
悟空

悟空というインスタンスを作成できました。
Personを継承しているので、
def say_hello(self,name):
も実行することができます。

goku.say_hello('鈴木')
こんにちは、鈴木さん。私は悟空です。

コメント

タイトルとURLをコピーしました