一、学习目标
1.掌握类的定义和实例化对象。
2.熟练掌握类的构造函数__init__使用。
3.掌握类的继承机制和使用。
二、相关练习
1、定义一个玩具类Toy(),创建名字为“小汽车”、“手枪”和“积木”的玩具实例,计算出用这个类创建了多少个玩具对象。
class Toy():count = 0def __init__(self,name):self.name = nameprint('创建了名字为{}的玩具实例'.format(name))Toy.count = Toy.count + 1Toy1 = Toy('小汽车')Toy2 = Toy('手枪')Toy3 = Toy('积木')print('这个类一共创建了{}个玩具对象'.format(Toy.count))
2、创建Animal类、Dog类、XiaoTianQuan类和Cat类。其类和类继承关系如下图所示,分别实现这4类的实例化对象,并运行对象方法。
class Animal():def __init__(self,name):self.name = nameprint('这个{}可以'.format(name))def eat(self):print('吃东西')def drink(self):print('喝水')def run(self):print('跑步')def sleep(self):print('睡觉')class Dog(Animal):def bark(self):print('吠')class Cat(Animal):def catch(self):print('抓老鼠')class XiaoTianQuan(Dog):def fly(self):print('飞')Ani1 = Animal('动物')Ani1.eat()Ani1.drink()Ani1.run()Ani1.sleep()print('\n')Ani2 = Dog('狗')Ani2.bark()print('\n')Ani3 = Cat('猫')Ani3.catch()print('\n')Ani4 = XiaoTianQuan('哮天犬')Ani4.fly()
3、编写程序以实现摆放家具的如下需求:
- 房子(House)有户型、总面积和家具名称列表(新房子没有任何的家具)
- 家具(HouseItem)有名字和占地面积,其中:席梦思(bed)占地4平方、衣柜(chest)占地2平方、餐桌(table)占地1.5平方。
- 将以上三件家具添加到房子中。
- 打印房子时,要求输出:户型、总面积、剩余面积、家具名称列表。
class House():def __init__(self,type,all):self.type = typeself.all = allclass HouseItem():def __init__(self,name,area):self.name = nameself.area = areaItem1 = HouseItem('bed',4)Item2 = HouseItem('chest',2)Item3 = HouseItem('table',1.5)type = input('请输入房子的户型:')a = int(input('请输入房子的总面积:'))house = House('apartment',a)if Item1.area+Item2.area+Item3.area>house.all:print('家具把房子都占满了,请合理添加家具!!!')else:print('家具安排得很合理!')print('房子的户型为:',house.type)print('房子的总面积为:',house.all)print('房子的剩余面积为:',house.all-(Item1.area+Item2.area+Item3.area))print('所添加的家具有:{0:},{1:},{2:}'.format(Item1.name,Item2.name,Item3.name))
三、反思总结
- 在这次练习中,熟练掌握类的定义和实例化对象。
- 并且熟练掌握类的构造函数__init__的使用方法。
- 在实验中,掌握类的继承机制和使用。
- 并学会如何利用实例化的对象对函数的属性进行调用