「DivingintoPython」を読んでいました。そして、私はこのコードに出くわしました:
class UserDict:
def __init__(self, dict=None):
self.data = {}
if dict is not None: self.update(dict)
質問:「self.data.update」ではなく「self.update」なのはなぜですか?
「DivingintoPython」を読んでいました。そして、私はこのコードに出くわしました:
class UserDict:
def __init__(self, dict=None):
self.data = {}
if dict is not None: self.update(dict)
質問:「self.data.update」ではなく「self.update」なのはなぜですか?
のソース コードを見ると、メソッドが個別に定義されUserDict
ていることがわかります。メソッドは、属性の を呼び出す独自のメソッドを呼び出すだけupdate
です。これにより、コードがよりモジュール化され、保守しやすくなります。また、@Ignacio が指摘しているように、メソッドを簡単に拡張またはオーバーライドするために継承する他のクラスにとってははるかに簡単です。__init__
update
update
data
UserDict
update
メソッドを置き換えることで、子供たちが更新操作を簡単に再定義できるようにしupdate()
ます。