1.首先看Python如何定义类:
class Athlete:
def __init__(self):
# The code to initialize a "Person" object.
2.self的重要性:
定义一个类时,实际上是在定义一个定制工厂函数,然后可以在代码中使用这个工厂函数创建实例:
a = Person()
Python在处理这行代码时,把工厂函数的调用转换为以下调用,明确了类、方法(自动设置为__init__())和所处理的对象实例:
Person().__init__(a)
这里可以发现,目标标识符赋值至self参数。如果没有这个赋值,Python解释器无法得出方法调用要应用到哪个对象实例。
注意:类代码设计为在所有对象实例间共享:方法是共享的,而属性不共享。self参数可以帮助标识要处理哪个对象实例的数据。
3.实际上不仅__init__方法需要self作为它的第一个参数,类中定义的所有其他方法也是如此。Python要求每个方法的第一个参数为调用对象实例。