我想问你一段Python代码:
class UserDict:
def __init__(self, dict=None, **kwargs):
self.data = {}
if dict is not None:
self.update(dict)
if len(kwargs):
self.update(kwargs)
def clear(self): self.data.clear()
这里,clear(self)是UserDict类的一个方法,对类的data属性进行操作,对吧?这个函数不会永远对 data 进行操作吗?因为它每次都调用自己?
请您参考如下方法:
UserDict.clear() 调用 self.data.clear()。 self.data 是 dict 类型,而不是 UserDict,所以它调用了一个不同的方法,而不是它自己。如果 UserDict.clear() 调用 self.clear() 而不是 self.data.clear(),这将是一个无限递归。
