LoginSignup
9
7

More than 5 years have passed since last update.

Python:【継承】サブクラスでスーパークラスのコンスタラクタを再利用する

Last updated at Posted at 2016-08-20

Python初心者です。
継承について、調べたので備忘録として置いておきます。

実行環境

Windows7 64bit
Python 2.7

親クラスのコンストラクタの再利用

クラスについて
スーパークラスの取得

classTest.py
# -*- coding: utf-8 -*-

class BaseClass(object):    # objectクラスを継承すること

    def __init__(self, a, b):
        self.a = a
        self.b = b

    def sum(self):
        return self.a + self.b

class DerivedClass(BaseClass):

    def __init__(self, a, b):
        # 再利用している
        super(DerivedClass, self).__init__(a, b)

        # スーパークラスのメソッドもここで使える
        print self.sum()

if __name__ == '__main__':

    cls = DerivedClass(10, 5)
    print "sum:" + str(cls.sum())
    print "a:" + str(cls.a)
    print "b:" + str(cls.b)

classTest.pyの出力結果
15
sum:15
a:10
b:5

説明

DeruvedClass(サブクラス)のinit()内で

super(DerivedClass, self).__init__(a, b)

と記述する。
再利用しない場合には、DerivedClassでまた同じコードを書かなければなりません。なので、super()を使い、スーパークラスを取得し、コンストラクタを再利用しています。

また、

print self.sum()

とすぐに使える(そりゃそうか)

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7