关于python的类方法、实例方法和静态方法区别

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()
原文地址:https://www.cnblogs.com/phpzhou/p/5220761.html