鱼C论坛

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

[已解决]第40课:类和对象,动动手第0题

[复制链接]
发表于 2021-2-22 11:20:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
原题:思考这一讲我们学习的内容,请动手,在一个类(Class)中定义一个变量,用于跟踪该类有多少个实例被创建(即:当实例化一个对象,这个变量+1,当销毁一个对象,这个变量自动-1)。

小甲鱼的标准答案:
  1. class C:
  2.         count = 0
  3.         
  4.         def __init__(self):
  5.                 C.count += 1

  6.         def __del__(self):
  7.                 C.count -= 1

  8. >>> a = C()
  9. >>> b = C()
  10. >>> c = C()
  11. >>> C.count # 这里为何不需要写括号()?
  12. 3
  13. >>> del a
  14. >>> C.count
  15. 2
  16. >>> del b, c
  17. >>> C.count
  18. 0
复制代码

我的问题:
1. __init__(self) 和 __del__(self),都是魔法方法。它们,可以算作 “功能恰好相互相反” 吗?
2. 第13行,这里调用时,为何不需要写括号()?
最佳答案
2021-2-22 11:24:42
可以算作 “功能恰好相互相反” 吗?

准确的说,只有在这里算功能相反,一个+,一个-

第13行,这里调用时,为何不需要写括号()?

因为count是属性,不是方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-22 11:24:42 | 显示全部楼层    本楼为最佳答案   
可以算作 “功能恰好相互相反” 吗?

准确的说,只有在这里算功能相反,一个+,一个-

第13行,这里调用时,为何不需要写括号()?

因为count是属性,不是方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 02:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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