self.variable.function() 在 python 中的含义或通过类自变量访问方法

卢塔亚·胡扎伊法·伊德里斯

我正在阅读这种二叉搜索树插入的简单方法,以下是解决方案:

class Node:

    def __init__(self, data):
        self.left = None
        self.right = None
        self.data = data

    def insert(self, data):
        if self.data:


            if data < self.data:
                if self.left is None:
                    self.left = Node(data)
                else:
                    self.left.insert(data)
            elif data > self.data:
                if self.right is None:
                    self.right = Node(data)
                else:
                    self.right.insert(data)
            else:
                self.data = data

    def PrintTree(self):
        if self.left:
            self.left.PrintTree()
        print(self.data),
        if self.right:
            self.right.PrintTree()


if __name__ == "__main__":
    root = Node(12)
    root.insert(6)
    root.insert(14)
    root.insert(3)

    root.PrintTree()

但我仍然想知道他们通过变量调用函数的以下几行:

self.left.insert(data)

然后 :

self.right.insert(data)

和 :

self.left.PrintTree()

这个叫什么 ?我需要回顾一下。

亚当·霍斯曼

insert(self, data)方法的内容中可以看出rightleft实例属性旨在保存 type 的对象Node,它们是对节点的两个子节点的引用self您引用的行调用了这个类中定义的方法,但不是在self实例上调用它们,而是在子节点上调用它们,因此它们将使用不同的数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章