类变量和实例变量
通常我们用到的在类内进行定义属性(self.var来绑定)的方式其实是创建实例变量。
Python动态语言的特点,让我们可以随时给实例添加新的实例变量,给类添加新的类变量和方法。
对于类变量的一些用法和区别如下:
1、在使用实例变量和类变量的时候一定要注意,使用类似<实例>.val_name访问变量的时候,实例会先在自己的实例变量列表里查找是否有这个实例变量,如果没有,那么它就会去类变量列表里找,如果还没有,弹出异常。
2、对于类变量,请坚持使用类名.类变量的访问方式。
3、类定义的变量存在于类的内存里,因此实例无权对类变量进行修改。
4、类变量是该类所有实例共享的变量,但是实例对象只能对类内存空间中的变量进行访问,不能修改(尝试修改只会在实例自己的内存空间中新建一个属于自己的实例变量)
5、在实例中新增、修改、删除类变量n,不会影响到同名其他实例变量n(其他实例访问的是自己内存空间中的或是类的内存空间中的n)
6、类无权访问实例变量(类只能访问自己内存空间的,管不着继承者自己内存中的)
7、类变量可修改、新增、删除(python作为动态语言的特点)
参考:python 类和实例 - 刘江的python教程 (liujiangblog.com)
私有属性和公有属性:
本文作者:FreeCheng
本文链接:https://www.cnblogs.com/freecheng/p/17549163.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步