鱼C论坛

 找回密码
 立即注册
查看: 978|回复: 8

[已解决]类属性不是是所有实例共享的吗?

[复制链接]
发表于 2022-2-8 17:22:40 | 显示全部楼层 |阅读模式
10鱼币
>>> class A:
...     a = 1
...
>>> c = A()
>>> d = A()
>>> c.a
1
>>> c.a = 2
>>> d.a
1
>>>
我突然被问倒了,这里的类属性被c改了,但b显示的

类属性还是1啊,是不是c.a = 2的问题?
最佳答案
2022-2-8 17:22:41
老沫白 发表于 2022-2-8 17:37
我主要是想知道为什么c.a和b.a不行

因为只有在总的 class 类中改变才能使所有的实例对象一起随着改变,
而单独改变实例对象中的变量是无法牵扯到另一个实例对象的!

最佳答案

查看完整内容

因为只有在总的 class 类中改变才能使所有的实例对象一起随着改变, 而单独改变实例对象中的变量是无法牵扯到另一个实例对象的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-8 17:22:41 | 显示全部楼层    本楼为最佳答案   
老沫白 发表于 2022-2-8 17:37
我主要是想知道为什么c.a和b.a不行

因为只有在总的 class 类中改变才能使所有的实例对象一起随着改变,
而单独改变实例对象中的变量是无法牵扯到另一个实例对象的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-8 17:30:30 | 显示全部楼层
应该是 A.a = 2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-2-8 17:31:24 | 显示全部楼层

为什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-8 17:34:45 | 显示全部楼层
这样才能让c.a, d.a都是 2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-2-8 17:37:12 | 显示全部楼层
ckblt 发表于 2022-2-8 17:34
这样才能让c.a, d.a都是 2

我主要是想知道为什么c.a和b.a不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-8 17:44:29 | 显示全部楼层
老沫白 发表于 2022-2-8 17:37
我主要是想知道为什么c.a和b.a不行

类相当于一个模板,实例化相当于粘贴这个模板,粘贴之后修改的内容,不会干扰到原模板和其他粘贴的模板,
A.a这个就相当于修改原模版,所以实例化的模板也会被改变,类存在的意义就在于将一个事物归类
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-8 17:47:41 | 显示全部楼层
谢谢兄弟好评!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-8 17:59:00 | 显示全部楼层
小黑是乌龟
小白是乌龟

小黑是黑色的,小白不一定是黑色
乌龟是黑色的,小黑和小白都是黑色的

评分

参与人数 1鱼币 +5 收起 理由
python爱好者. + 5 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 13:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表