方法(method)
是类内部定义的函数。
按照首参的不同,方法可分为以下三大类:
- 实例方法
当作为类实例的属性调用时,类实例对象会作为首参隐式传递,通常以
self
标记。
class C:def f(self, arg1, arg2): ...
无参方法也是实例方法,但不能通过实例调用,只能通过类调用。因为传递实例需要一个参数。
- 类方法
@classmethod
装饰的方法为类方法。类将作为首参隐式传递。通常以cls
标记。
class C:@classmethoddef f(cls, arg1, arg2): ...
- 静态方法
@staticmethod
装饰的方法为静态方法。静态方法没有隐式接收的首参。
class C:@staticmethoddef f(arg1, arg2, argN): ...