class Student(object):
count = 0
def __init__(self, name):
self.name = name
Student.count += 1 #由于实例属性属于各个实例所有,互不干扰;类属性属于类所有,所有实例共享一个属性;
#所以为了实现每创建一个实例属性自动增加,这里的count必须是类的count属性,也就是Student.count
测试代码:
if Student.count != 0:
print('测试失败!')
else:
bart = Student('Bart')
if Student.count != 1:
print('测试失败!')
else:
lisa = Student('Bart')
if Student.count != 2:
print('测试失败!')
else:
print('Students:', Student.count)
print('测试通过!')
思路:根据测试代码,第一次没有创建类实例,只是直接访问Student类的count,所以此时Student.count == 0。
实例化该类以后,会调用__init__函数(测试代码创建了bart实例),此时Student.count == 1。
lisa指向bart实例,同样也调用了函数,此时Student.count == 2,最后打印出来Student.count == 2并且测试成功

博客探讨如何在Python中通过在Student类中添加类属性来自动统计创建的实例数量。测试显示,每当创建一个实例,类属性count就会增加,验证了这种方法的有效性。
1900

被折叠的 条评论
为什么被折叠?



