python实例变量-静态方法-类方法

一、 初谈

class A(object):
    hobby = 'reading'  #类变量,类属性为所有实例共享,实例可以访问类变量
    def __init__(self,name):   # 初始化函数
        self.name = name   #实例变量,每一个实例独有
        self.name = name   #实例变量,每一个实例独有

    def foo(self):
        print(self.name)  #实例方法,实例方法只能被实例调用

    @staticmethod   #静态方法,不使用self或者cls,静态方法是一种普通函数,就位于类定义的命名空间中,它不会对任何实例类型进行操作。类和实例都可以访问!
    def static_foo(a,b):
        print(a + b)

    @classmethod   #类方法,将类本身作为对象的操作方法,约定第一个参数为cls;目的是调用类的相关信息。原则上被类调用,但类和实例都可以访问
    def class_foo(cls,x):
        print(cls.hobby * x)

class B(A):
    def hi(self):
        super(B,self).foo()   #super访问父类方法
        print('hi,B')

if __name__ == '__main__':
    a = A('lucy')   #创建实例a
    a.foo()           #访问实例方法
    print(a.hobby)    #访问类方法
    a.static_foo(1,2)        #访问静态方法

    a.class_foo(2)        #访问类方法
    A.class_foo(2)

    b = B('Lily')
    b.hi()

结果:

lucy
reading
3
readingreading
readingreading
Lily
hi,B

二、总结

* self.表示一个具体的实例本身,cls表示这个类本身

猜你喜欢

转载自blog.csdn.net/hou_angela/article/details/82387158