python类有三种方法。
1、一般方法
即不加任何修饰的,直接用def定义的方法。如:
In [14]: class A:
...: def a(self):
...: print('一般方法')
...:
In [15]: class_A = A()
In [16]: class_A.a()
一般方法
相关推荐:《Python教程》
2、staticmethod方法
经过staticmethod修饰过的类方法无需实例化即可被调用,而且该类方法不再需要self作为第一参数。
In [107]: class A:
...: @staticmethod
...: def foo(x):
...: print(x)
...:
In [108]: A.foo(1)
这样做的好处是,以后重构类的时候不需要修改init函数,只要额外添加需要处理的函数,然后使用@staticmethod修饰即可。
3、classmethod方法
类方法经 classmethod 修饰后无需实例化即可被调用,而且该类方法的第一参数不再是self,而是cls,表示类本身。
In [20]: class B:
...: a = 1
...: def __init__(self):
...: print('init class A')
...: @classmethod
...: def func1(cls):
...: print('classmehod func1')
...: print(cls.a)
...:
In [21]: B.func1()
classmehod func1
1