Python:UserDict

时间:2012-04-09 03:19:49

标签: python

我正在阅读“潜入Python”。我遇到了这段代码:

    class UserDict:
        def __init__(self, dict=None):
            self.data = {}
            if dict is not None: self.update(dict)

问题:为什么它是“self.update”而不是“self.data.update”?

2 个答案:

答案 0 :(得分:2)

如果查看UserDict的源代码,您会发现update方法是单独定义的。 __init__方法只调用自己的update方法,该方法调用update属性的data。这使代码更加模块化和可维护。同样正如@Ignacio指出的那样,从UserDict继承的任何其他类都可以更容易地扩展或覆盖update方法。

答案 1 :(得分:0)

通过替换update()方法,孩子们可以轻松地重新定义更新操作。