一、学习目标
1.掌握类的定义和实例化对象。
2.熟练掌握类的构造函数__init__使用。
3.掌握类的继承机制和使用。
二、相关练习
1、定义一个玩具类Toy(),创建名字为“小汽车”、“手枪”和“积木”的玩具实例,计算出用这个类创建了多少个玩具对象。
class Toy():
count = 0
def __init__(self,name):
self.name = name
print('创建了名字为{}的玩具实例'.format(name))
Toy.count = Toy.count + 1
Toy1 = Toy('小汽车')
Toy2 = Toy('手枪')
Toy3 = Toy('积木')
print('这个类一共创建了{}个玩具对象'.format(Toy.count))
2、创建Animal类、Dog类、XiaoTianQuan类和Cat类。其类和类继承关系如下图所示,分别实现这4类的实例化对象,并运行对象方法。
class Animal():
def __init__(self,name):
self.name = name
print('这个{}可以'.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 = type
self.all = all
class HouseItem():
def __init__(self,name,area):
self.name = name
self.area = area
Item1 = 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__的使用方法。
- 在实验中,掌握类的继承机制和使用。
- 并学会如何利用实例化的对象对函数的属性进行调用