今天在知乎上看到李保银老师翻译的一篇关于静态方法和类方法的文章,终于弄通了关于类方法和静态方法的用法,在这里做一下笔记。
class Kls(object):
def __init__(self,data):
self.data = data
def printd(self):
print self.data
@staticmethod
def smethod(*arg):
print 'Static:',arg
@classmethod
def cmethod(*arg):
print 'Class:',arg
最常用的类实例方法是通过实例作为第一个参数的方法,这个例子中printd()函数就是类实例方法,要通过创建实例后通过实例调用,例如:
ik1 = Kls('Liusion')
ik1.printd()
加上@classmethod装饰器可以创建类方法,可以直接调用,例如:
Kls.smethod()
加上@staticmethod装饰器可以创建静态方法,运行时不需要实例和类参与。