一、小明爱跑步
需求:
1、小明体重 75公斤
2、小明每次跑步体重会减少0.5公斤
3、小明每次吃东西体重会增加1公斤
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14class Person: def __init__(self, new_name, new_weight): self.name = new_name self.weight = new_weight def run(self): self.weight -= 0.5 def eat(self): self.weight+= 1 def __str__(self): return '我的名字是%s, 体重为%.2f公斤 ' % (self.name, self.weight) xiaoming = Person('小明',75) xiaoming.run() xiaoming.eat() print(xiaoming)
输出为:
复制代码
1我的名字是小明, 体重为75.50公斤
二、小明爱跑步扩展
需求:
1、小明和小华都爱跑步
2、小明体重75公斤
3、小华体重60公斤
4、每次吃东西体重都会增加1公斤
5、每次跑步体重都会减少0.5公斤
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16class Person: def __init__(self, new_name, new_weight): self.name = new_name self.weight = new_weight def __str__(self): return '我的名字是%s, 体重为%.2f公斤' % (self.name, self.weight) def run(self): self.weight -= 0.5 def eat(self): self.weight += 1 xiaoming = Person('小明', 75) xiaohua = Person('小华', 60) xiaoming.run() print(xiaoming) xiaohua.eat() print(xiaohua)
输出为:
复制代码
1
2我的名字是小明, 体重为74.50公斤 我的名字是小华, 体重为61.00公斤
三、摆放家具
需求:
1、房子有户型(三室一厅),总面积(100平方米)和家具名称列表(新房子没有家具)
2、家具有名称,占地面积,其中,床占地4平方米,餐桌占地1.5平方米,柜子占地2平方米
3、将以上三个家具添加到房子中
4、打印房子时,要求输出:户型、总面积、剩余面积、家具名称列表
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36class HouseItem: def __init__(self, new_name, new_area): self.name = new_name self.area = new_area def __str__(self): return '%s 的占地面积为 %.2f' % (self.name, self.area) class House: def __init__(self, new_house_style, new_area): self.house_style = new_house_style self.area = new_area self.free_area = new_area self.item_list =[] def add_item(self, item): if item.area > self.area: print("%s 太大了,不能添加到房子中!" % item) return self.item_list.append(item.name) self.free_area -= item.area def __str__(self): return '户型:%s 总面积:%.2f 剩余面积:%.2f 添加的家具有:%s' % (self.house_style, self.area, self.free_area, self.item_list) bed = HouseItem('床',4) chest = HouseItem('衣柜', 2) table = HouseItem('餐桌', 1.5) house = House('三室一厅', 100) house.add_item(bed) house.add_item(chest) house.add_item(table) print(house)
输出为:
复制代码
1户型:三室一厅 总面积:100.00 剩余面积:92.50 添加的家具有:['床', '衣柜', '餐桌']
四、士兵突击
需求:
1、士兵小虎有一把AK-47
2、士兵可以开火
3、枪可以发射子弹
4、枪需要装填以增加子弹数量
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40# 先定义枪类 class Gun: def __init__(self, new_name): self.name = new_name self.bullet_number = 0 def add_bullet(self, number): self.bullet_number += number def shoot(self): if self.bullet_number <= 0: print("没有子弹了,请装填子弹!") return else: print("发射子弹!") self.bullet_number -= 1 # 再定义士兵类 class Soldier: def __init__(self, new_name): self.name = new_name self.soldier_gun = None def fire(self): if self.soldier_gun is None: print("%s 还没有枪呢" % self.name) return print("冲! fire!") #让枪装填子弹 self.soldier_gun.add_bullet(30) self.soldier_gun.shoot() AK_47 = Gun('AK-47') xiaohu = Soldier('小虎') xiaohu.soldier_gun = AK_47 xiaohu.fire()
输出为:
复制代码
1
2冲! fire! 发射子弹!
以上案例均参考自黑马程序员,本人还是python初学者,望各位大佬不喜勿喷,谢谢!
最后
以上就是活力书本最近收集整理的关于Python进阶与提高3--面向对象封装案例的全部内容,更多相关Python进阶与提高3--面向对象封装案例内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复