为类似列表的 ADB 尝试递归构建器

Trying a recursive builder for a list-like ADB

我正在尝试使用名为 TZList 的新 class 创建自己的列表类型, 我试图用递归 __init__ 函数创建它,但它不起作用, 这是代码:

class TZList:
    def __init__(self, *args):
        numargs = len(args)
        self.value = None
        self.next = None

        if numargs == 0:
            self.value = None
            self.next = None
        elif numargs == 1:
            self.value = args[0]
            self.next = None
        else:
                self.value = args[0]
                numargs -= 1
                args = args[1:]
                self.next = TZList(args)

当我尝试这样获取数据时:

t = TZList(1,2,3)
print(t.value)
print(t.next.value)
print(t.next.next.value)

我得到一个奇怪的打印:

Traceback (most recent call last):
1
(2, 3)
  File "C:\****\a3.py", line 79, in <module>
    print(t.next.next.value)
AttributeError: 'NoneType' object has no attribute 'value'

我不知道为什么,希望你能帮助我。

原因是您将 args 重新传递到 TZList 的方式。您将其作为元组传递。而不是 self.next = TZList(args)self.next = TZList(*args)