#coding=utf-8
class ClassMethodStaticMethod:
name = '类变量'
def show(self):
print '实例方法'
print ClassMethodStaticMethod.name
@classmethod
def class_method(cls):
print cls
print ClassMethodStaticMethod.name
@staticmethod
def static_method():
print ClassMethodStaticMethod.name
class_instance = ClassMethodStaticMethod()
class_instance.show()
print '------------------'
class_instance.class_method()
print '------------------'
class_instance.static_method()
print '------------------'
ClassMethodStaticMethod.class_method()
print '------------------'
ClassMethodStaticMethod.static_method()
测试结果:
实例方法
类变量
------------------
__main__.ClassMethodStaticMethod
类变量
------------------
类变量
------------------
__main__.ClassMethodStaticMethod
类变量
------------------
类变量
请按任意键继续. . .
类的实例可以调用实例方法、类方法和静态方法;通过类的名称可以访问类方法和静态方法,但不能访问实例方法。
类方法、静态方法需要通过装饰器来定义的。类方法第一个参数cls为类对象(不是类的实例对象)。