[读书笔记]实例属性vs类属性
类和实例都是namespace,类是类属性的namespace,实例是实例属性的namespace。
如何访问类属性?
通过类和实例都可以访问类属性,
- classname.attr_name: 当用类访问类属性时,其搜索顺序时,类的namespace,继承链上的父类namespace;
- instance.attr_name:实例访问某种属性,其搜索顺序时,实例namespace,类的namespace,继承链上的父类namespace。 当实例中属性名与类属性名相同时, 类属性则会被实例属性“屏蔽”,当实例属性删除时,类属性则会再次“暴露”给实例
注意:只有当类属性是不可变类型时,才有可能被实例属性“屏蔽”掉,比如数字,字符串等,如图1,如图2
对于可变类型则不会”屏蔽“,比如列表,字典等,如图3
图1--数字类型类属性

图2--字符串类型类属性

图3--列表类型类属性

所以,修改类属性要使用类名,而不是实例名。

浙公网安备 33010602011771号