我想问一下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
上运行吗?因为它每次自称?
答案 0 :(得分:6)
UserDict.clear()
来电self.data.clear()
。 self.data
类型为dict
,而不是UserDict
,因此它会调用不同的方法,而不是自身。如果UserDict.clear()
调用self.clear()
而不是self.data.clear()
,那将是无限递归。
答案 1 :(得分:2)
不,此方法调用clear
dict的data
方法,该方法与UserDict
完全无关。