鱼C论坛

 找回密码
 立即注册
查看: 1916|回复: 1

第39课 类 拾遗作业中出现的问题

[复制链接]
发表于 2019-11-11 23:01:08 | 显示全部楼层 |阅读模式
10鱼币
  1. class C ():
  2.     count = 0
  3.     def __init__(self) :
  4.         self.count += 1    #一定要写成   C.count += 1

  5.     def __del__(self) :
  6.         self.count -= 1     #一定要写成   C.count -= 1

  7. a = C()
  8. b = C()
  9. c = C()
  10. c1 = C.count
  11. del (a)
  12. c2 = C.count
  13. print(c1,c2)
复制代码


这时候答案是 :0 0 而不是 : 3 2

请问  一定要写成  的那一部分为什么一定要是 类属性 而不能是 实例属性 呢?

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-11-11 23:08:11 | 显示全部楼层
好吧,我懂了
因为类对象相当于做玩具的模具,只有改变它,引用类的属性 C.count 才会变
而self.count只是实例对象,只会改变这个实例的count,所以引用类的属性C.count当然不会变
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-20 17:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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