璀璨尘世 发表于 2021-7-24 15:12:09

循环调用问题

想问下为什么下面的代码没有出现循环调用append呢?

class Newlist():
        def __init__(self, newlist = , i = 0):
                self.newlist = newlist
                self.i = i

        def append(self, value):
                self.newlist.append(value)
                self.i +=1

newlist = Newlist()
newlist.append(3)

print(newlist.newlist, newlist.i)

qiuyouzhi 发表于 2021-7-24 15:17:02

为什么会循环调用 append 呢?

璀璨尘世 发表于 2021-7-24 15:19:53

qiuyouzhi 发表于 2021-7-24 15:17
为什么会循环调用 append 呢?

我的理解是 当我调用我自己写的append的时候,他读取到了self.newlist.append 然后再执行我的append函数?

qiuyouzhi 发表于 2021-7-24 15:21:39

璀璨尘世 发表于 2021-7-24 15:19
我的理解是 当我调用我自己写的append的时候,他读取到了self.newlist.append 然后再执行我的append函数 ...

嗯,执行了你写的 append 方法,然后调用了列表的 append 方法
没有循环呀?

璀璨尘世 发表于 2021-7-24 15:30:07

qiuyouzhi 发表于 2021-7-24 15:21
嗯,执行了你写的 append 方法,然后调用了列表的 append 方法
没有循环呀?

唔,那我有点懵了 是啥情况下才会出现循环呢?是不是如果我继承了列表的类(如果有这个类的话),再这样写就会循环呢

qiuyouzhi 发表于 2021-7-24 15:46:03

璀璨尘世 发表于 2021-7-24 15:30
唔,那我有点懵了 是啥情况下才会出现循环呢?是不是如果我继承了列表的类(如果有这个类的话),再这样 ...

有 for,while,或者递归

璀璨尘世 发表于 2021-7-24 16:54:41

qiuyouzhi 发表于 2021-7-24 15:46
有 for,while,或者递归

好的 感谢!
页: [1]
查看完整版本: 循环调用问题