我正在阅读“深入Python”。我遇到了这段代码:
class UserDict:
def __init__(self, dict=None):
self.data = {}
if dict is not None: self.update(dict)
问题:为什么是“self.update”而不是“self.data.update”?
最佳答案
如果你查看UserDict
的源代码,你会发现update
方法是单独定义的。 __init__
方法只调用它自己的 update
方法,该方法调用 data
属性的 update
。这使得代码更加模块化和可维护。另外,正如 @Ignacio 指出的那样,任何其他继承自 UserDict 的类都可以更轻松地扩展或重写 update 方法。
关于Python:用户字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10068536/