时间:2021-05-22
不正确的使用类变量
看下面一个例子:
>>> class A(object):... x = 1...>>> class B(A):... pass...>>> class C(A):... pass...>>> print A.x, B.x, C.x1 1 1看起来没有问题。
>>> B.x = 2>>> print A.x, B.x, C.x1 2 1嗯哈,还是和预想的一样
>>> A.x = 3>>> print A.x, B.x, C.x3 2 3我了个去。只是改变了A.x,为啥C.x也变了?
在Python里,类变量通常在内部被当做字典来处理并遵循通常所说的方法解析顺序(Method Resolution Order (MRO))。因此在上面的代码中,因为属性x在类C中找不到,因此它会往上去它的基类中查找(在上面的例子中只有A这个类,当然Python是支持多重继承(multiple inheritance)的)。换句话说,C没有它自己独立于A的属性x。因此对C.x的引用实际上是对A.x的引用。(B.x不是对A.x的引用是因为在第二步里B.x=2将B.x引用到了2这个对象上,倘若没有如此,B.x仍然是引用到A.x上的。)
知识点补充:
类变量、实例变量概念
类变量:
类变量就是定义在类中,但是在函数体之外的变量。通常不使用self.变量名赋值的变量。类变量通常不作为类的实例变量的,类变量对于所有实例化的对象中是公用的。
实例变量:
实例变量是定义在方法中的变量,使用self绑定到实例上的变量,只是对当前实例起作用。
以上就是Python小白不正确的使用类变量实例的详细内容,更多关于Python新手不正确的使用类变量的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
常见的就是验证码输入明明正确但却提示不正确,或者压根不显示。说一下碰到这种情况的几种原因:①dede版本程序升级操作不正确造成验证码提示不正确②更好空间新的空间
序言:导致店面或是商品群体不正确的缘故经常是长期性很多刷销量或是营销推广加上群体不正确造成的,群体不正确会导致大家的店面有很多的总流量可是转换却很低。在淘宝店铺
出现由于应用程序配置不正确的提示怎么办出现由于应用程序配置不正确的提示怎么办出现由于应用程序配置不正确的提示怎么办 注意事项 该文件有32位的(X86),也有
一硬盘故障提示信息的含义(1)Harddiskconfigurationerror(硬盘配置错误)硬盘配置不正确,跳线不对,硬盘参数设置不正确等。(2)Date
在c++中:(1)register关键字无法在全局中定义变量,否则会被提示为不正确的存储类。(2)register关键字在局部作用域中声明时,可以用&操作符取地