基本クラスを作成しました:
class Thing():
def __init__(self, name):
self.name = name
クラスを拡張してinitメソッドに追加して、SubThing
がname
とtime
の両方のプロパティを持つようにします。どうすればいいのですか?
class SubThing(Thing):
# something here to extend the init and add a "time" property
def __repr__(self):
return '<%s %s>' % (self.name, self.time)
どんな助けも素晴らしいでしょう。
__init__
サブクラスでsuper
を呼び出して、親の__init__
メソッドを適切に:
class SubThing(Thing):
def __init__(self, *args, **kwargs):
super(SubThing, self).__init__(*args, **kwargs)
self.time = datetime.now()
ただし、object
は古いスタイルのクラスでは機能しないため、super
から基本クラスのサブクラスを作成してください。
class Thing(object):
...
SubThing
に別の__init__
メソッドを記述してから、スーパークラスのコンストラクターを呼び出してフィールドを初期化する必要があります。