类对象:类名(比如Student)

实例对象:类创建的对象(xiaoming=Student())

类属性可以被类对象和实例对象所共有

实例属性只能被实例对象所拥有,类对象不能拥有

 

PS:如果在类外修改类属性,必须通过类对象去引用,如果通过实例对象引用,实际上是产生了一个新的实例属性,修改的是实例属性,对类属性没有影响,并且如果通过实例对象引用,引用的是新产生的属性

如果删除了这个实例属性,那么继续引用的就是类属性。

 

类方法:

类方法可以被实例对象和类对象所引用,上面用到装饰器@classmethod,括号里面(cls),类方法还有一个作用就是修改类属性

静态方法:

静态方法同样可以被实例对象和类对象所引用,上面的装饰器是:@staticmethod,括号里面无需参数,注意:在静态方法中只能通过类名引用类属性和类方法,因为它的括号里面没有任何参数

property装饰器(属性方法)

属性方法一般什么时候应用?

属性方法,用法:实例.属性(其实就相当于实例对象调用了这个方法,只不过已属性的方式显示)

看下面实例:

结果为:

上面的代码相同,如果删除之后再重新调用mmmm.mkj

那么结果为:

注意:属性方法括号里面是self

快速记忆:类方法(@classmethod)中的参数为cls,静态方法(@staticmethod)里面没有参数,属性方法(@property)参数为self

posted on 2018-08-28 15:35  菜鸟growing  阅读(192)  评论(0编辑  收藏  举报