类对象:类名(比如Student)
实例对象:类创建的对象(xiaoming=Student())
类属性可以被类对象和实例对象所共有
实例属性只能被实例对象所拥有,类对象不能拥有
PS:如果在类外修改类属性,必须通过类对象去引用,如果通过实例对象引用,实际上是产生了一个新的实例属性,修改的是实例属性,对类属性没有影响,并且如果通过实例对象引用,引用的是新产生的属性
如果删除了这个实例属性,那么继续引用的就是类属性。
类方法:
类方法可以被实例对象和类对象所引用,上面用到装饰器@classmethod,括号里面(cls),类方法还有一个作用就是修改类属性
静态方法:
静态方法同样可以被实例对象和类对象所引用,上面的装饰器是:
结果为:
上面的代码相同,如果删除之后再重新调用mmmm.mkj
那么结果为:
注意:属性方法括号里面是self
快速记忆:类方法(@classmethod)中的参数为cls,静态方法(@staticmethod)里面没有参数,属性方法(@property)参数为self