Python 变量=[self]是什么意思?

Python 变量=[self]是什么意思?,python,oop,Python,Oop,我们刚刚收到这段代码,我不明白_todo=[self]是什么意思 行_todo=[self]创建了一个名为_todo的列表,其中包含一个元素,该元素是调用u str_u方法的对象。__str__方法通常由print语句调用 随后,该变量用于预加/追加子对象的字符串表示,以创建树的扁平表示。self引用ABR类的实例。_todo=[self]是一个局部变量列表对象,其中包含类实例。\u todo是一个局部变量,它以ABR类的当前实例对象作为列表的第一个元素进行初始化。在我看来,它像是一个抽象二叉树

我们刚刚收到这段代码,我不明白_todo=[self]是什么意思

行_todo=[self]创建了一个名为_todo的列表,其中包含一个元素,该元素是调用u str_u方法的对象。__str__方法通常由print语句调用


随后,该变量用于预加/追加子对象的字符串表示,以创建树的扁平表示。

self引用ABR类的实例。_todo=[self]是一个局部变量列表对象,其中包含类实例。\u todo是一个局部变量,它以ABR类的当前实例对象作为列表的第一个元素进行初始化。在我看来,它像是一个抽象二叉树的无序遍历,返回二叉树的最后2个元素。附带说明:首先,如果树为空,此方法将返回]而不是[]。其次,在Python中使用+=构建字符串效率非常低,因为每次追加都会创建一个新字符串。如果你的树很大,这将变得非常昂贵。相反,请为此任务使用str.join进行调查。
class ABR(object):
    def __init__(self,ordre,root=None):
        self.__root = None
        assert ordre in (lt,gt,leq,geq)
        self.__order = ordre
        if isinstance(root,Sommet):
            self.__root = root

    def __str__(self):
        """ effectue un parcours infixe """
        _todo = [ self ]
        _done = "[ "
        while _todo != [] :
            _next = _todo.pop(0)
            if _next != None :
                if isinstance(_next,Sommet):
                    _done += "%s, " % _next.val
                elif not _next.estVide:
                    if _next.hasRightSubTree :
                        _todo.insert(0,_next.rightSubTree)
                    _todo.insert(0,_next.racine)
                    if _next.hasLeftSubTree :
                        _todo.insert(0,_next.leftSubTree)
        return _done[:-2]+" ]"