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