python-静态方法类方法
静态方法和类方法
静态方法包装在
staticmethod
类的对象中,定义中没有self
,可直接通过类来调用方法类方法包装在
classmethod
类的对象中,参数为cls
,虽然可以通过对象来调用,但是实际上cls
还是会关联到类的方法1
2
3
4
5
6
7
8
9
10
11class MyClass():
def tellme():
print("i am a static method,without self")
tellme = staticmethod(tellme)
class MyClass():
def tellme(cls):
print("i am a class method,with args sls")
tellme = classmethod(tellme)
MyClass.tellme()无需实例化,即可直接通过类来调用方法,如果不这样写,那么实例化之后是无法调用方法的,因为函数缺少了参数self
以上即为使用
staticmethod
和classmethod
手工包装静态方法和类方法
装饰器
用来替代手工包装,可用于包装任何可调用对象,还可用于方法和函数。装饰器可以有多个,指定多个时,应用的顺序与列出的顺序相反
1 | class MyClass(): |