Python自复制类

2024-04-24 00:16:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正忙着让一个班级重新创造自己。我试图了解元类属性,但我仍然不是100%清楚。在

目标是: 一个类,它为某个迭代创建自己,然后保存它所创建的一级子级(在下面的示例中,它是自己的孩子). 在

class MyClass(object):

    def __init__(self, num):

        self.name = num
        self.children = []

        if num !=0:
            cls = self.__new__(self.__class__ )
            cls = self.__init__(num-1)
            self.children.append(cls)

            #Uncomment for Error
            #print cls.name


if __name__ == "__main__":
    c = MyClass(3)

这是我正在尝试的,但试图打印自身名称返回一个“name”不存在的AttributeError。我认为这是因为我并没有传递属性,但我正在寻找一些最佳实践的澄清,也许还有一个解决方案。在

如果我对某事不清楚,请告诉我以便我能更好地解释!在


Tags: nameself示例目标if属性initmyclass
2条回答

不需要自己调用__new__()__init__()方法;构造函数将自动处理该部分。在

class MyClass(object):
    def __init__(self, num):
        self.name = num
        self.children = []

        if num !=0:
            cls = self.__class__(num-1)
            self.children.append(cls)
            print cls.name

怎么样:

class MyClass(object):

    def __init__(self, num):
        self.name = num
        self.children = []

        if num != 0:
            self.children.append(self.__class__(num - 1))

if __name__=="__main__":
    c = MyClass(3)

相关问题 更多 >