#每天一点点#
python 面向对象 搬家具实例
第一步:先来创建一个房子,包括面积,户型,位置信息

#创建一个 房子 类
class Home:def __init__(self,new_area,new_info,new_addr):  #房子的面积,户型,地址self.area = new_areaself.info = new_infoself.addr = new_addrdef __str__(self):return '房子面积:%d,户型:%s,地址:%s'%(self.area,self.info,self.addr)fangzi = Home(129,'三室两厅','青岛市 黄岛区 xx路888号')
print(fangzi)

输出结果 ? ? ? ? ? ? ? ?
房子面积:129,户型:三室两厅,地址:青岛市 黄岛区 xx路888号

第二步:创建一个床,信息:床的名字,大小(平方)

#创建一个床的类
class Bed:def __init__(self,new_name,new_area):self.name = new_nameself.area = new_areadef __str__(self):return '%s床占用的面积是%d'%(self.name,self.area)bed1 = Bed('双人床',4)
print(bed1)

输出结果 ? ? ? ? ? ? ? ?

双人床床占用的面积是4

第三步:考虑把床挪进房子里,占用房子多少面积(即房子剩余面积)

#定义剩余面积,存放家具名字的列表self.left_area = new_area #原始的剩余面积即为房子的面积self.contain_items = []#放家具名字,存储多个数据

增加家具

#增加家具def add_item(self,item):self.left_area -= item.area  #随着家具不断放进屋,剩余面积不断减少self.contain_items.append(item.name) #提取家具的名字,不断放入列表

把第一个床的信息传入进去,如果有第二个,就继续传入

#把第一个床的信息传入进去
fangzi.add_item(bed1)
print(fangzi)

这个时候代码已经改的差不多了,但,你把这个数据传进,我就要反馈给你信息吗?
不一定哦,不乐意咋样

第四步 继续改

        self.left_area -= item.get_area()self.contain_items.append(item.get_name())

? 对应 ?

    def get_area(self): #将家具的面积封装return self.areadef get_name(self):  #将家具的名字封装return self.name

总结:最终代码

#存放家具 实例
#创建一个 房子 类
class Home:def __init__(self,new_area,new_info,new_addr):self.area = new_areaself.info = new_infoself.addr = new_addrself.left_area = new_area #原始的剩余面积即为房子的面积self.contain_items = []#放家具名字,存储多个数据def __str__(self):msg = '房子总面积:%d,可用面积:%s,户型:%s,地址:%s'%(self.area,self.left_area,self.info,self.addr)msg += '当前房子里的物品有%s' %(str(self.contain_items))return msgdef add_item(self,item):#self.left_area -= item.area  #随着家具不断放进屋,剩余面积不断减少#self.contain_items.append(item.name)  #提取家具的名字,不断放入列表self.left_area -= item.get_area()self.contain_items.append(item.get_name())#创建一个床的类
class Bed:def __init__(self,new_name,new_area):self.name = new_nameself.area = new_areadef __str__(self):return '%s床占用的面积是%d'%(self.name,self.area)def get_area(self): #将家具的面积封装return self.areadef get_name(self):  #将家具的名字封装return self.namefangzi = Home(129,'三室两厅','青岛市 黄岛区 xx路888号')
print(fangzi)bed1 = Bed('双人床',4)
print(bed1)fangzi.add_item(bed1) #把第一个床的信息传入进去
print(fangzi) #bed2 = Bed('三人床',5)
fangzi.add_item(bed2)
print(fangzi)

python 面向对象 搬家具实例相关推荐

  1. python面向对象3-多层继承、super()、私有权限、多态、类属性实例属性、类方法和静态方法

    python面向对象1–类.对象.属性.魔法方法 python面向对象2–综合案例:烤地瓜.搬家具.单继承.多继承 python面向对象3-多层继承.super().私有权限.多态.类属性实例属性.类 ...

  2. [转载] python面向对象编程实例

    参考链接: Python面向对象编程 案例介绍 本案例设计的是:为购置的新房添置家具,在本案例中,我们需要给出指定的房屋和面积,在为其添置家具的过程中,各家具的面积之和不能超过房屋面积的总和.房屋及家 ...

  3. python 面向对象编程:类和实例

    深度学习在构建网络模型时,看到用类来构建一个模型实例,清晰明了,所以这篇博文主要学习一下python类 类和实例: 类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填 ...

  4. Python面向对象-概念、类、实例

    Python面向对象-概念.类.实例 OOP--Object Oriented Programming,面向对象编程,是一种程序设计思想.该思想将对象作为程序的基本单元,一个对象包含了数据和操作数据的 ...

  5. 用打怪游戏实例升级版,理解python面向对象

    为了能够让大家充分理解什么是面向对象,在上一章节中,我们特地讲解了python的面向过程,并用python并不擅长的面向过程的编程思想简单设计了一个打怪游戏实例.这一节,我们将正式地来介绍Python ...

  6. 【手把手教你】Python面向对象编程入门及股票数据管理应用实例

    1 前言 一般而言,在学习或练习python的初级阶段,在Jupyter Notebook(spyder或pycharm)上进行逐条执行语句和代码,这样可以起到交互的良好效果.但是如果要进行大一点的项 ...

  7. Python 进阶_OOP 面向对象编程_实例属性和方法

    目录 目录 构造器和解构器 构造器 __init__ 真构造器 __new__ 解构器 __del__ 实例方法 Python 中的 抽象方法 实例属性 查看实例属性 实例属性和类属性的区别 访问不可 ...

  8. python面向对象编程实例pdf_Python面向对象编程指南 ([美]StevenFLott洛特) 中文pdf扫描版[52MB]...

    Python是一种面向对象.解释型的程序设计语言,它已经被成功应用于科学计算.数据分析以及游戏开发等诸多领域. Python面向对象编程指南深入介绍Python语言的面向对象特性,全书分3个部分共18 ...

  9. CDA学习之Python - 面向对象编程

    面向对象编程目录 一.基本概念 二.案例:烤地瓜 三.案例:搬家具 四.继承 4.1 继承的概念 4.2 单继承:一个父类 4.3 多继承:多个父类 4.4 子类重写父类的同名属性和方法 4.5 拓展 ...

  10. python面向对象基础-封装

    面向对象就是将编程当成一个事务,对外界来说,事务是直接使用,不用去管他内部的情况.而编程就是设置事务能够做什么事. 类 类是对一系列具有 相同特征和行为的事务的统称,是一个抽象的概念,不是真实存在的事 ...

最新文章

  1. 创建模板_UG中如何创建属于自己的编程模板界面?
  2. ACM公布2017年图灵奖,大卫·帕特森和约翰·轩尼诗获奖
  3. [转] java的 Collection 和 Map 详解
  4. 学习汇编语言 -王爽,自已完成的一道课程设计题 (5)
  5. linux下安装两个nginx教程,在linux系统下安装两个nginx的简单方法
  6. Java 使用List集合实现图书增删改查
  7. Java设计模式(十四):MVC设计模式
  8. FastDFS集群部署
  9. Storm的ack机制在项目应用中的坑
  10. 缓存 ASP.NET 页
  11. Android轩辕剑之ActionBar之一
  12. Unity采用Forge Networking Remastered数据的远程传输Basic Moving Cube Example
  13. 适合用做公司官网WordPress主题风格免受权版本
  14. 人工智能可以应用在哪些领域?
  15. vue 汉字转拼音字母
  16. Python爬取豆瓣电影短评
  17. 【bzoj3238】差异 后缀自动机
  18. 将网页添加至收藏夹代码
  19. Web技术基础学②——初步学习CSS
  20. MongoDB配置副本集(含Arbiter)

热门文章

  1. 怎样恢复内存卡的视频文件?(图文操作解析)
  2. Branches ‘develop‘ and ‘origin/develop‘ have diverged. Fatal: And branch ‘develop‘ may be fast-forwa
  3. java.sql.SQLException: Access denied for user ‘crm‘@‘localhost‘ (using password: YES)
  4. LA 4670 Dominating Patterns,AC自动机
  5. 认识计算机系统授课计划,计算机网络技术基础授课计划.doc
  6. ToolBar修改返回按钮图标
  7. 操作系统1-6章作业
  8. 那个小白说他还没搞懂类和对象,我一怒之下把这篇文章扔给了他
  9. 单片机入门(预备知识)-适合初学者
  10. NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE-论文翻译