python中的类属性,类方法和静态方法

类属性 和 类方法
属于类对象 而不是这个类的某一个实例对象 该类所有的实例对象共享一份
直接可以通过类名.的形式进行访问
类方法第一个参数为cls cls引用类对象
@classmethod
注意不要通过 对象来对类属性进行修改 那么将给对象绑定一个同名的实例属性

静态方法
@staticmethod
静态方法的参数 即没有类对象 也没有实例对象 作为参数

python建议不要直接对对象的属性进行直接赋值和访问
不能对赋值数据进行检验合法性

如果用set和get方法话 无疑对调用造成一定的复杂

既保持直接访问的方便 又能对数据进行合法性的检验 起到保护的作用
class class_name(xx):
@property
def x(self): #在类外看来有一个属性x
return self._x
@x.setter
def x(self,value):
self._x = valule #obj.x = value
@x.deleter
def x(self):
del self._x

类可以绑定一个属性x 但对x的绑定、访问和删除其实本质上调用的是上面对应的三个方法

slots 约束一类的对象能够绑定的属性 但是子类不会被继承

你可能感兴趣的:(python,类)