self是函数方法定义时表示自身的变量。你不是一定要将这个变量命名为self但是作为对象的方法执行时,该对象本身会作为第一个参数传入。如下:
class Person():
def __init__(self):
self.age = 0
def one_year_later(self):
self.age += 1
return self.age
p = Person()
print(p.age)
# 0
print(p.one_year_later())
# 1
print(Person.one_year_later(p))
# 2
# 在调用p.one_year_later()的时候,其实本质是执行了Person.one_year_later(p)这里的p作为了参数传入了你所定义的one_year_later函数中