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

标签 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 的。这行得通吗?

最佳答案

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

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

关于python - 类可以使用 __init__ 方法来创建同一类的其他实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35137581/

相关文章:

python - 创建一个包含 >255 个元素的列表

python - 如何将 Bokeh 中的 slider 值传递回 Python 代码

python - 如何创建我自己的 Django 登录表单

python - 如何在Python类中调用 "namespace"方法

javascript - jQuery "Class"麻烦 - "Unexpected token this"

ios - swift 3 从父 ViewController 调用函数

Python质数代码运行缓慢

python - 线程未退出python

c++ - 我在 DLL 项目 C++ 中收到 "nonstatic member reference must be relative to specific object"错误

php - 是否可以使用 JS/PHP 为网页中的元素动态分配 ID?