- 实例方法
- 静态方法
- 类方法
静态方法
@staticmethod
def foo():
...
静态方法实际上就是普通函数,只是由于某种原因(信息局部化)需要定义在类内部。静态方法没有 self 参数。
类方法
@classmethod
def foo(cls):
...
这种方法必须要有一个表示器调用类的参数,习惯用 cls 作为参数名,还可以有任意多其他参数。
人们通常用类方法实现与本类的所有对象有关的操作。
举例
class Countable:
counter = 0
def __init__(self):
Countable.counter += 1
@classmethod
def get_counter(cls):
return Countable.counter