self.variable.function() 在 python 中的含义或通过类 self

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


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()

这叫什么?我需要对此进行回顾。


函数式编程
浏览 81回答 1
1回答

慕运维8079593

从该方法的内容中可以看出,和 instance 属性用于保存 类型的对象,这些对象是对节点的两个子节点的引用。您引用的行调用此类中定义的方法,但它们不是在实例上调用它们,而是在子节点上调用它们,因此它们将使用不同的数据。insert(self, data)rightleftNodeselfself
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python