|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 风船野 于 2022-9-23 11:31 编辑
python类中的self表示了什么?
下面这段代码中在isLeftChild方法中的 == self判断时,self代表的是什么?
replaceNodeData方法中的=self赋值时self又代表什么?
- class TreeNode:
- def __init__(self, key, val, left=None, right=None, parent=None):
- self.key = key
- self.payload = val
- self.leftChild = left
- self.rightChild = right
- self.parent = parent
- def hasLeftChild(self):
- return self.leftChild
- def hasRightChild(self):
- return self.rightChild
- def isLeftChild(self):
- return self.parent and self.parent.leftChild == self
- def isRightChild(self):
- return self.parent and self.parent.rightChild == self
- def isRoot(self):
- return not self.parent
- def isLeft(self):
- return not (self.rightChild or self.leftChild)
- def hasAnyChild(self):
- return self.rightChild or self.leftChild
- def hasBothChild(self):
- return self.rightChild and self.rightChild
- def replaceNodeData(self, key, value, lc, rc):
- self.key = key
- self.payloda = value
- self.leftChild = lc
- self.rightChild = rc
- if self.hasLeftChild():
- self.leftChild.parent = self
- if self.hasRightChild():
- self.rightChild.parent = self
复制代码
代码出处:
B站数据结构与算法python版 二叉查找树操作:
https://www.bilibili.com/video/BV1VC4y1x7uv/?p=68
Python 中的 self 表示实例本身,即当你定义一个 A 类,对 A 类进行初始化赋值,例如 a = A()
此时 self 就表示 a 这个实例对象本身,而你代码 replaceNodeData 函数方法中的左右子孩子节点,是将 self 设置为父节点,即此时的实例对象设置为左右孩子节点的父节点
|
|