在确定性上积累,在不确定性上低成|

FreeCheng

园龄:3年9个月粉丝:0关注:1

类变量和实例变量

通常我们用到的在类内进行定义属性(self.var来绑定)的方式其实是创建实例变量

Python动态语言的特点,让我们可以随时给实例添加新的实例变量,给类添加新的类变量和方法。

对于类变量的一些用法和区别如下:

1、在使用实例变量和类变量的时候一定要注意,使用类似<实例>.val_name访问变量的时候,实例会先在自己的实例变量列表里查找是否有这个实例变量,如果没有,那么它就会去类变量列表里找,如果还没有,弹出异常。

2、对于类变量,请坚持使用类名.类变量的访问方式。

3、类定义的变量存在于类的内存里,因此实例无权对类变量进行修改。

4、类变量是该类所有实例共享的变量,但是实例对象只能对类内存空间中的变量进行访问,不能修改(尝试修改只会在实例自己的内存空间中新建一个属于自己的实例变量)

5、在实例中新增、修改、删除类变量n,不会影响到同名其他实例变量n(其他实例访问的是自己内存空间中的或是类的内存空间中的n)

6、类无权访问实例变量(类只能访问自己内存空间的,管不着继承者自己内存中的)

7、类变量可修改、新增、删除(python作为动态语言的特点)

参考:python 类和实例 - 刘江的python教程 (liujiangblog.com)

 

私有属性和公有属性:

参考:类变量和实例变量 (suda.edu.cn)

 

本文作者:FreeCheng

本文链接:https://www.cnblogs.com/freecheng/p/17549163.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   FreeCheng  阅读(24)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起