継承 on Python

Python 2.6

■プログラム(TestInheritance.py)
#--------------------
# 継承
#--------------------
# 親クラスその1
class Oya_A(object):
    val = "AAAAA"
    
    def __init__(self):
        print "oya_A:init"
    
    def oyako(self):
        print "oya :" + self.val

# 親クラスその2
class Oya_B(object):
    val = "BBBBB"
    def __init__(self):
        print "oya_B:init"

# 継承したクラス
class Ko_C(Oya_A):
    ''' Oya_Aクラスを継承'''
    # 変数のオーバーライド
    val = "CCCCC"
    
    # メソッドのオーバーライド
    def oyako(self):
        print "ko"
    
    # 親クラスの属性を使用する
    def call_oya(self):
        super(Ko_C, self).oyako()

a = Oya_A()    # oya_A:init
b = Oya_B()    # oya_B:init
c = Ko_C()     # oya_A:init

c.oyako()      # ko
c.call_oya()   # oya :CCCCC

# オブジェクトのデータ型を確認する
# オブジェクトがデータ型のインスタンスか、データを継承したデータ型のインスタンスであればTrue
print isinstance(c, Oya_A)  # True
print isinstance(c, Oya_B)  # False

# 多重継承
class Ko_D(Oya_A, Oya_B):
    pass