类可以使用__init__方法来创建同一个类的其他实例吗?

时间:2016-02-01 18:20:28

标签: python class

这是我想要实现的目标。我正在尝试阅读树(让我们说一个文件夹结构)。 我想在这个树中定义一个通用节点,这个对象的初始化应该触发树遍历,如下所示

class node():
    def __init__(self, name, parent, children=[]):
        self.name = name
        self.parent = parent
        self.children = children

        nodes = "code to find children"

        for child in nodes:
            children.append(node(childname, self.name))

def main():
    Tree = node("root", "")

初始化此初始对象时,它应包含完整的树。这是为python。这会有用吗?

1 个答案:

答案 0 :(得分:4)

是的,您可以在__init__方法中引用该类,并且可以使用它来创建同一类的更多实例。你的方法有效。

请注意children=[]默认参数;这将创建一个共享列表,为该方法存储一次。请参阅"Least Astonishment" and the Mutable Default Argument,了解为什么会让您失意,以及如何避免这个问题。