类属性
类属性和实例属性
类属性就相当于全局变量,实例对象共有的属性,实例对象的属性位实例对象自己独自拥有。
类属性就是类对象拥有的属性,他被所有类的实例对象所共有,在内存中只存在于一个副本,这个和C++中类的静态成员变量有点类似。对于共有属性,在类外可以通过类对象和实例访问。
实例属性每个实例各自拥有,相互独立;而类属性有且只有1份,创建的实例都会继承自唯一的类属性。意思就是绑定在一个实例上的属性不会影响到其它的实例。如果在类上绑定一个属性,那么所有的实例都可以访问类属性,且访问的类属性是同一个,一旦类属性改变就会影响到所有的实例。
改类属性
- 增加:通过类对象增加,则相当于增加全局,所有类实例都能拥有;通过类实例增加,只能在此实例中拥有
- 删除:同1
- 修改:同1,实例进行副本需改,不影响原始值。
类方法
通过@classmethod,该方法绑定到类对象上,而非实例对象。类方法的第一个参数是类本身。因位在类方法的调用上,只能调用类属性,无法获得类实例属性或者方法。
类方法调用可以通过类对象或者类实例来调用。