鱼C论坛

 找回密码
 立即注册
查看: 735|回复: 3

哪位大佬能帮我看一下,为什么我这段代码会触发无线递归?

[复制链接]
发表于 2019-4-23 22:06:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我要做一个类,要用它实现双向链表

如果我把Dict类中的__str__方法替换成__repr__就会触发无限递归,请问要如何改进呢?我想实现的效果是print(l)就把所有的东西都打印出来,方便查看

[code]class Dict():
    def __init__(self, item):
        self.data = item
        self.up = None
        self.next = None

    def __str__(self):
        result = [self.data, self.up, self.next]
        return str(result)


class LinkedList():
    def __init__(self):
        self.head = None
        self.tail = None
        self.list = []

    def __str__(self):
        return str(self.list)

    def add(self, item):
        if not isinstance(item, Dict):
            item = Dict(item)
        if self.head is None:
            self.head = item
            item.up = None
            item.next = None
            self.tail = item
        else:
            self.tail.next = item
            item.up = self.tail
            self.tail = item
        self.list.append(item)



def main():
    l = LinkedList()
    l.add(0)
    l.add(1)
    l.add(2)
    print(l)



if __name__ == "__main__":
    main()
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-4-24 00:11:45 | 显示全部楼层

回帖奖励 +5 鱼币

双向链表不是你这样做的吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-25 13:36:48 From FishC Mobile | 显示全部楼层
cwhsmile 发表于 2019-4-24 00:11
双向链表不是你这样做的吧

不是么?我是在网上看到一篇介绍链表的文章后,然后做的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-26 16:53:11 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-11 02:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表