python中的封装及例题练习
- python中的封装及例题练习 推荐度:
- 相关推荐
python中的封装及例题练习
关于封装
1.封装是面向对象编程的一大特点 2.面向对象编程的第一步 将属性和方法封装到一个抽象的类中(为什么说是抽象的,因为类不能直接使用) 3.外界使用类创建对象,然后让对象调用方法 4.对象方法的细节都被封装在类的内部
需求1:
1.小明和小美都爱跑步
2.小美体重45.0公斤
3.小明体重75.0公斤
4.每次跑步都会减少0.5公斤
5.每次吃东西都会增加1公斤
class Person:def __init__(self,name,weight):self.name = nameself.weight = weightdef __str__(self):return ('我的名字叫 %s 体重是 %.2f' %(self.name,self.weight))
## 在对象方法内部,可以直接访问对象的属性def run(self):print('%s 爱跑步' %(self.name))self.weight -= 0.5def eat(self):print('%s 吃东西' %(self.name))self.weight += 1xiaoming = Person('小明',75.0)
xiaoming.run()
xiaoming.eat()
#print(xiaoming.weight)
print(xiaoming)## 同一个类创建出多个对象之间,属性互不干扰的
xiaomei = Person('小美',45.0)
xiaomei.run()
xiaomei.eat()
print(xiaomei)
print(xiaoming)
需求2:摆放家具
需求:
1.房子有户型,总面积和家具名称列表
新房子没有任何的家具
2.家具有名字和战地面积,其中
床:占4平米
衣柜:占2平面
餐桌:占1.5平米
3.将以上三件家具添加到房子中
4.打印房子时,要求输出:户型,总面积,剩余面积,家具名称列表
class person:def __init__(self,name,weight):self.name = nameself.weight = weightdef __str__(self):return '%s的体重是%.2f'%(self.name,self.weight)def run(self):print('%s爱跑步'%(self.name))self.weight = self.weight - 0.5def eat(self):print('%爱吃饭'%(self.name))self.weight = self.weight + 1
xiaomei = person('小美',45.0)class HouseItem:def __init__(self,name,area):self.name = nameself.area = areadef __str__(self):return '%s占地%.2f'%(self.name,self.area)
class House:def __init__(self,house_type,area):self.house_type = house_typeself.area = areaself.free_area = areaself.item_list = []def __str__(self):return ('户型:%s\n总面积:%.2f剩余:%.2f\n家具:%s'%(self.house_type,self.area,self.free_area,self.item_list))def add_item(self,item):if item.area > self.free_area:print('%s的面积太大了,无法添加'%(item.name))returnself.item_list.append(item.name)self.free_area -= item.area
bed = HouseItem('bed',400)
my_home = House('两室一厅',300)
print(bed)
my_home.add_item(bed)
print(my_home)
最新文章
- 亚马逊迫于微软竞争压力调低云服务价格
- 类继承接口?
- SV,class学习笔记五、参数化类(parameterized class)
- 图解+原理推导完全读懂KPM算法
- 【JKD源码】String 三兄弟
- idea设置Java class模板注释
- 建立NFS服务器
- 9 Kong LVS 均衡负载
- linux用户密码转换为明文,Linux strace 明文密码抓取
- SQL分组数据
- 反爬虫原理与绕过实战
- mysql 10931142
- 斯德哥尔摩的照片七:城市漫步(中)
- 作为成员的结构体(作为结构体的成员的结构体)
- 外贸新人最全面的领英Linkedin开发客户方法(建议收藏)
- Redis 官方可视化工具,功能真的强大
- 双色球彩票生成之一用户彩票号码随机生成
- android 6.0 logcat机制(一)java层写log,logd接受log
- 遇到空指针异常的时候我们应该怎么办
- Lock锁(重点)