# (7)综合训练:
# 定义一个`Person` 类,包含初始化 init 方法:
# 实例属性: 名字, name
# 年龄, age
# 1. 记录由该类创建的对象的个数,创建一个对象,计数+1,删除一个对象,计数-1;
# 2. 定义一个方法,可以打印当前对象的个数;
# 3. 定义一个方法`show_info`, 输出以下信息
# 这是一个 Person 类,谢谢查看!
# 4. 打印对象的时候,可以输出打印自己的名字和年龄
# 我的名字是 xxx, 年龄是 xxx
# 5. 定义一个方法 `study`, 输出以下信息
# 我叫 xxx, 我要好好学习
# 6. 操作步骤
# 1. 调用`show_info `方法;
# 2. 创建两个对象, 打印当前对象,并打印当前的对象个数;
# 3. 分别使用两个对象调用`study`方法;
# 4. 删除一个对象,打印输
class Person(object):
#定义类属性count,统计该类创建的对象个数
__count=0
#创建init方法,创建实例属性
def __init__(self,name,age):
self.name=name
self.age=age
#记录由Person类创建对象的个数,创建+1,删除-1
Person.__count+=1
#定义类方法,参数必须是类对象,打印当前对象的个数
@classmethod
def get_count(cls):
return cls.__count
#没规定的时候一般定义静态方法
@staticmethod
def show_info():
print('这是一个 Person 类,谢谢查看!')
#定义str方法
def __str__(self):
print(f'我的名字是{self.name},年龄是{self.age}')
#定义study方法
def study(self):
print(f'我叫{self.name},我要好好学习')
#定义del方法
def __del__(self):
Person.__count-=1
if __name__ == '__main__':
#调用show_info方法
Person.show_info()
print(Person.get_count())
#创建两个对象
p1=Person('小猪',18)
p2=Person('小猫',23)
#打印当前对象,并打印当前的对象个数
print(p1,p1.get_count())
print(p2,p2.get_count())
#分别使用两个对象调用study方法
p1.study()
p2.study()
#删除一个对象
del p1
#打印输出当前的对象个数
print(Person.get_count())
出当前的对象个数。