方法(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): ...