为了说清楚 self 是个什么东西,首先需要搞清实例与类之间的关系。
人就是一种类,人有名字、身高、体重等属性,不同人这些属性都是不一样的,除此之外,人还有很多方法(功能),例如思考、跑步、睡觉等等。
class Person:
def __init__(self, name):
self.name = name # 定义类的属性
def think(self): # self其实就是类函数think的一个普通参数而已,表示被调用的对象,参数具体值也即我们的实例对象
print("{} is thinking".format(self.name))
具体到每一个人,例如你自己,你身边的每一个具体的人,都是「人类」的实例对象。实例继承了类的所有属性和方法,例如:
xiaoming = Person("xiaoming")
我们构造了一个叫"xiaoming"的人,它是Person类的实例对象,我们给Person类定义了一个think方法,但是需要一个参数,我们可以把xiaoming这个实例对象传递过去。