我正在阅读“潜入Python”。我遇到了这段代码:
class UserDict:
def __init__(self, dict=None):
self.data = {}
if dict is not None: self.update(dict)
问题:为什么它是“self.update”而不是“self.data.update”?
答案 0 :(得分:2)
如果查看UserDict
的源代码,您会发现update
方法是单独定义的。 __init__
方法只调用自己的update
方法,该方法调用update
属性的data
。这使代码更加模块化和可维护。同样正如@Ignacio指出的那样,从UserDict
继承的任何其他类都可以更容易地扩展或覆盖update
方法。
答案 1 :(得分:0)
通过替换update()
方法,孩子们可以轻松地重新定义更新操作。