【问题标题】:Why isn't this infinite recursion?为什么这不是无限递归?
【发布时间】:2012-07-15 02:42:21
【问题描述】:

我想问你关于 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 上运行吗?因为它每次都调用自己?

【问题讨论】:

    标签: python function recursion


    【解决方案1】:

    UserDict.clear() 调用 self.data.clear()self.datadict 类型,而不是 UserDict,所以它调用了不同的方法,而不是它自己。如果UserDict.clear() 调用self.clear() 而不是self.data.clear(),这将是一个无限递归。

    【讨论】:

      【解决方案2】:

      不,该方法调用data dict的clear方法,与UserDict完全无关。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-18
        • 1970-01-01
        • 1970-01-01
        • 2020-12-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多