在定义类的过程中,无论是显式创建类的构造方法,还是向类中添加实例方法,都要求将 self 参数作为方法的第一个参数,self 到底扮演着什么样的角色呢?
同一个类可以产生多个对象,当某个对象调用类方法时,该对象会把自身的引用作为第一个参数自动传给该方法,换句话说,Python 会自动绑定类方法的第一个参数指向调用该方法的对象。如此,Python解释器就能知道到底要操作哪个对象的方法了。
class Students: def __init__(self): print("正在执行构造方法") def say(self, content): print(self, content) jim = Students() # 初始化jim实例 jim.say('这是jim的实例') # 调用jim实例的say方法,此时的self为"jim" tom = Students() # 初始化tom实例 tom.say('这是tom的实例') # 调用tom实例的say方法,此时的self为"tom" 运行结果: 正在执行构造方法 <__main__.Students object at 0x109abdd30> 这是jim的实例 正在执行构造方法 <__main__.Students object at 0x109abdc18> 这是tom的实例