类对象实例计数
练习1:编写一个学生类,产生一堆学生对象, (5分钟)
要求:
- 有一个计数器(属性),统计总共实例了多少个对象
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time : 2018/5/31 8:51
# @File : Person.py
方法一:类中定义一个list,可以实现计数
# class Person:
# count = []
#
# def __init__(self, name, age):
# self.name = name
# self.age = age
# self.count.append(self.name)
#
#
# for i in range(10):
# i = Person('alex', 10+i)
# print(i.__dict__)
#
# print(i.count)
# print(len(i.count))
方法二: 类中定义一个常数,常数是正常计数,
原因是:
可变数据类型list和不可变数据类型str的区别
class Person:
count = 0
def __init__(self, name, age):
self.name = name
self.age = age
self.count = self.count + 1 #操作的是每个对象自己的属性,不是类的
#正确写法:操作的类的属性,类每次实例都会加1
Person.count += 1
for i in range(10):
i = Person('alex', 10+i)
print(i.__dict__)
print(i.count)