-1
私は次のようなクラス構造の定義を持っています: 私が理解できないのは、Super()はここで基本クラスの関数でSuperクラスのコードをどのように使用するのですか?super()はどのようにして子クラスの関数内で動作しますか?
class Std(object):
def __init__(self):
self.W = defaultdict(int)
def update(self, vect, label):
self.bias += label
for k, v in vect.items():
self.W[k] += v * label
class Avg(Std):
def __init__(self):
super(Avg, self).__init__()
self.U = defaultdict(int)
self.beta = 0
def update(self, vect, label):
super(Avg, self).update(vect, label)
self.beta += label * self.count
for k, v in vect.items():
self.U[k] += v * label * self.count
何行のコードスーパー()ここではどのように動作しない平均クラスのupdateメソッドで、実際にそこにいると、誰かが私に説明できますか?
'超に相当します。つまり、単に別のメソッド*を呼び出すだけで、すでにインスタンスに存在するメソッドと同じ名前を持つことができます。 –
スーパークラス*メソッドは基本クラスから呼び出します。コードの行数は数えます。 –
@DanielRosemanが「基本クラス」と言っているのは誤解を招くことです。常に基本クラスを呼び出すとは限らず、兄弟クラスを呼び出すことができます。 – wim