我在读'潜入Python',下面的例子给出了每一行的解释,但我仍然无法解释意义。有人可以在数字1和2上多说一些吗?当它开始说明这个包装类的基本技术时,我不明白#1 ...等等。#2我完全不理解它。请协助和教育。UserDict普通方法说明
例5.10。 UserDict正常方法
def clear(self): self.data.clear() ❶
def copy(self): ❷
if self.__class__ is UserDict: ❸
return UserDict(self.data)
import copy ❹
return copy.copy(self)
def keys(self): return self.data.keys() ❺
def items(self): return self.data.items()
def values(self): return self.data.values()
❶clear是一个普通的类方法;它是公开可供任何人随时调用的。注意 明确,像所有的类方法,有自己作为第一个参数。 (请记住,当您调用方法时,不包含 self;它是Python为您添加的东西。)还要注意此包装类的基本技巧 :将实际字典(数据)存储为数据属性,定义全部实际字典所具有的方法,并将每个类方法重定向到实际字典上的相应方法。 (如果您忘记了,字典的清除方法将删除其所有密钥及其关联的值。) ❷真实字典的复制方法返回与原始 (完全相同键值对)。但是UserDict不能简单地重定向到self.data.copy,因为 方法返回一个真正的字典,并且你想要的是返回一个与自己相同的类 的新实例。