0

私は次の種類のスーパークラス/サブクラスのセットアップを持っています:

class SuperClass(object):
    def __init__(self):
        self.do_something() # requires the do_something method always be called

    def do_something(self):
        raise NotImplementedError

class SubClass(SuperClass):
    def __init__(self):
        super(SuperClass, self).__init__() # this should do_something 

    def do_something(self):
        print "hello"

SuperClass initで、まだ実装されていないdo_somethingメソッドを常に呼び出すようにしたいと思います。私はPython2.7を使用しています。おそらくABCはこれを行うことができますが、別の方法はありますか?

ありがとう。

4

1 に答える 1

9

の使用を除いて、コードはほとんど正しいですsuper。現在のクラス名を呼び出しに入れる必要があるため、次のsuperようになります。

super(SubClass, self).__init__()

間違ったクラス名を入力SuperClass.__init__したため、呼び出されず、その結果、呼び出されdo_somethingませんでした。

于 2011-10-16T17:29:23.697 に答える