self代表示例化的类,比如有Person类,zhangsan=Person(),那么self指的就是张三。
类中的方法需要self
在定义类的过程中,无论是显式创建类的构造方法,还是向类中添加实例方法,都要求将 self 参数作为方法的第一个参数。例如,定义一个 Person 类:
class Person:
def __init__(self):
print("正在执行初始化方法")
# 定义一个study()实例方法
def study(self,name):
print(name,"学习python中...")
类中方法的方法不加self
class Solution:
def isValidBST(self, root: Optional[TreeNode]) -> bool:
def inOrder(root): # 函数内部定义子函数,不需要self
ret=[]
if root.left:
ret+=inOrder(root.left)# 调用没有self的子函数也不需要self
if root:
ret.append(root.val)
if root.right:
ret+=inOrder(root.right)
return ret
nums=inOrder(root)
for i in range(1,len(nums)):
if nums[i-1]>=nums[i]:
return False
return True
类中的方法递归调用自身需要self
class Solution:
def isValidBST(self, root: Optional[TreeNode]) -> bool:
self.isValidBST(root.left)# 这里调用自身要self.
return True