3个方法,
m1 是实例方法,第一个参数必须是 self(约定俗成的);
m2 是类方法,第一个参数必须是cls(同样是约定俗成);
m3 是静态方法,参数根据业务需求定,可有可无...,对于未绑定方法,调用 A.m1 时必须显示地传入一个实例对象进去,而 a.m1是已经绑定了实例的方法,python隐式地把对象传递给了self参数,所以不再手动传递参数,这是调用实例方法的过程。...A.m1(a, 1) == a.m1(1)
#上面的等式左右两边的意义是相同的
如果未绑定的方法 A.m1 不传实例对象给 self 时,就会报参数缺失错误,在 py3 与 py2 中,两者报的错误不一致...A.m2(1) == a.m2(1)
# 上面的等式左右两边的意义是相同的
这使得我们可以在实例方法中通过使用 self.m2()这种方式来调用类方法和静态方法。...:
作为工厂方法创建实例对象,例如内置模块 datetime.date 类中就有大量使用类方法作为工厂方法,以此来创建date对象。