这就是我想要实现的目标。我正在尝试读取树(假设是文件夹结构)。 我想在这棵树中定义一个通用节点,并且该对象的初始化应该触发树遍历,如下所示
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 的。这行得通吗?
最佳答案
是的,您可以在__init__
方法中引用该类,并且可以使用它来创建同一类的更多实例。你的方法有效。
请注意 children=[]
默认参数;这将创建一个共享列表,为该方法存储一次。请参阅"Least Astonishment" and the Mutable Default Argument为什么这会让你陷入困境以及如何避免这个问题。
关于python - 类可以使用 __init__ 方法来创建同一类的其他实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35137581/