Python有类方法,实例方法,静态方法。方法是一个与特定的类相关联的函数。
方法在一个类定义内部声明,显示与类进行关联。
调用方法的语法和调用函数的语法不通。
__init__方法
当一个对象初始化时调用。
__str__方法
返回一个对象字符串。
# inside class Time:
def __str__(self):
return '%.2d':%.2d:%.2d' % (self.hour, self.minute, self.second)
打印后
time = Time(9, 45)
print(time)
输出:09:45:00
new()
这是个类方法(使用特殊方式处理,因此不用@classmethod),必须返回一个实例。返回实例会作为第一个参数(即self)传给__init__()方法。因为调用__init__()方法时要传入实例,而且禁止返回任何值,所以__init__()方法其实是‘初始化方法’。真正构造方法的是__new__()。new__也能返回其他类实例,这时解释器不会调用__init()。
self, cls
函数参数里的self和cls,是对类或实例的绑定,对于一般的函数我们可以直接调用,对于实例方法,我们每次定义方法的时候,都需要在参数中加入self,因为我们需要把实例自己传给函数,调用时a.foo()
,实际上,foo(a, x)
。类方法是以昂的,只不过传递的是类。
静态方法其实和普通方法一样不需要对谁进行绑定,唯一区别是需要用实例或类来调用。