2

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

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

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

4

2 回答 2

2

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

于 2012-04-09T03:26:02.850 回答
0

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

于 2012-04-09T03:23:05.953 回答