第40课:类和对象,动动手第0题
原题:思考这一讲我们学习的内容,请动手,在一个类(Class)中定义一个变量,用于跟踪该类有多少个实例被创建(即:当实例化一个对象,这个变量+1,当销毁一个对象,这个变量自动-1)。小甲鱼的标准答案:
class C:
count = 0
def __init__(self):
C.count += 1
def __del__(self):
C.count -= 1
>>> a = C()
>>> b = C()
>>> c = C()
>>> C.count # 这里为何不需要写括号()?
3
>>> del a
>>> C.count
2
>>> del b, c
>>> C.count
0
我的问题:
1. __init__(self) 和 __del__(self),都是魔法方法。它们,可以算作 “功能恰好相互相反” 吗?
2. 第13行,这里调用时,为何不需要写括号()? 可以算作 “功能恰好相互相反” 吗?
准确的说,只有在这里算功能相反,一个+,一个-
第13行,这里调用时,为何不需要写括号()?
因为count是属性,不是方法
页:
[1]