python : super() (2.x )

hdknr@LennyOne:~/super$ cat super.py
class Obj(object):
    def __init__(self,name):
        self.type=’Obj’
        self.name =name

class Parent(Obj):
    def __init__(self,name):
        self.type=’Parent’
        self.name =name

class Me(Parent):
    def __init__(self,name):
        super(Me,self).__init__(name)

class Baby(Me):
    def __init__(self,name):
        super(Parent,self).__init__(name)

if __name__ == ‘__main__’:
    for x in [ Obj(‘aaaa’),Parent(‘bbb’),Me(‘cccc’),Baby(‘dddd’)]:
        print x.type , x.name

hdknr@LennyOne:~/super$ python super.py
Obj aaaa
Parent bbb
Parent cccc
Obj dddd

3.0 では主に自分の親クラスをsuper()と引数なしで呼び出すらしい。

カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中