python的类方法需要在方法前面加装饰器:@classmethod ,静态方法是在方法前面加装饰器:@staticmethod。
类方法、类属性是属于类自身,属于类自身的命名空间,和实例方法、实例属性不在一个命名空间下。
实例对象和类都可以直接调用类方法、实例方法和静态方法,区别在于:在类方法和静态方法内部不能调用实例属性。
class Base: def __init__(self): print "base begin..." def prints(self): print "print base..." class Base1: def __init__(self): print "base1 begin..." def printss(self): print "print base1..." class Base2(Base1,Base): names = 'li' def __init__(self,name): self.name = name def prints(self): print "print objectmethod..."+self.name @staticmethod def printStatic(): print "print staticmethod..." @classmethod def printClass(cls): print "print classmethod"+cls.names b = Base2('king') b.prints() b.printClass() b.printStatic() print b.names Base2('jim').printStatic() Base2('jim').printClass() Base2('jim').prints()