目录

实例1:烤地瓜

实例2:搬家具


实例1:烤地瓜

逻辑思路:

  • 先定义类,其中先利用def __init__(self)函数设置初始化属性即被烤的时间、烤地瓜的状态和需要准备的调料,再定义cook函数通过烤地瓜的时间来判断烤地瓜的状态,继续定义add_condiments函数用来追加需要的调料,最后利用def __str__(self)函数解释对类或对象状态的说明。
  • 创建对象并调用对应的实例方法,输出烤地瓜的结果
# 1. 定义类:初始化属性、被烤和添加调料的方法、显示对象信息的str
#定义类
class SweetPotato():def __init__(self):self.cook_time=0#烤地瓜被烤的时间self.cook_state='生的'#烤地瓜的状态self.condiments=[]#需要准备的调料列表def cook(self,time):#烤地瓜方法# 1. 先计算地瓜整体烤过的时间self.cook_time+=time#计算烤地瓜的整体时间# 2. 用整体烤过的时间再判断地瓜的状态if 0<=self.cook_time<3:self.cook_state='生的'elif 3<=self.cook_time<5:self.cook_state='半生不熟'elif 5<=self.cook_time<8:self.cook_state='熟了'elif self.cook_time>=8:self.cook_state='烤糊了'def add_condiments(self,condiment):self.condiments.append(condiment)#添加烤地瓜调料def __str__(self):return f'这个地瓜的被烤过的时间是{self.cook_time}, 状态是{self.cook_state}, 调料有{self.condiments}'# 2. 创建对象并调用对应的实例方法
digua=SweetPotato()
#最初的状态
print(digua)
print()
#经过两分钟后的状态
digua.cook(2)
digua.add_condiments('孜然')
print(digua)
print()
#再经过五分钟后的状态
digua.cook(5)
digua.add_condiments('酱料')
print(digua)

运行结果:


实例2:搬家具

逻辑思路:

  • 先定义类。

(1)首先定义家具类,其中利用def __init__(self)函数设置初始化属性即家具名称和家具占地⾯积(2)然后定义房⼦类,其中先利用def __init__(self)函数设置初始化属性即实例属性包括房⼦地理位置、房⼦占地⾯积、房⼦剩余⾯积和房⼦内家具列表;再利用def __str__(self)函数解释对类或对象状态的说明,最后定义add_condiments函数用来追加容纳的家具。

  • 创建对象并调用对应的实例方法,输出添加家具的结果
#搬家具
class Furniture():def __init__(self,name,area):#家居名称self.name=name#家具占地面积self.area=areaclass Home():def __init__(self,address,area):#四个实例属性只有两个形参,因为剩余面积为area,家具列表为空#地理位置self.address=address#房屋面积self.area=area#剩余面积self.free_area=area#家具列表self.furniture=[]def __str__(self):return f'房子地理位置在{self.address}, 房屋面积是{self.area}, 剩余面积{self.free_area}, 家具有{self.furniture}'def add_furniture(self,item):#容纳家具# 如果 家具占地面积 <= 房子剩余面积:可以搬入(家具列表添加家具名字数据并房子剩余面积更新:# 房屋剩余面积 - 该家具的占地面积# 否则:提示用户家具太大,剩余面积不足,无法容纳)if self.free_area>=item.area:#占地面积足够大时添加可容纳的家具self.furniture.append(item.name)self.free_area-=item.area#剩余面积else:#否则占地面积小,不能容纳该家具print('家具太大,剩余家居面积不足')bed=Furniture('双人床',6)#bed实参引用
sofa=Furniture('沙发',10)
pool=Furniture('游泳池',1000)jia1=Home('北京',1000)print(jia1)
print()
#添加双人床
jia1.add_furniture(bed)
print(jia1)
print()
#再添加沙发
jia1.add_furniture(sofa)
print(jia1)
print()
#再添加游泳池
jia1.add_furniture(pool)
print(jia1)

运行结果:


在这两个实例中,其中

  • 函数def __str__(self)作用:解释说明,对类的说明或对象状态的说明。
  • 函数def __init__(self)作用:定义init方法设置初始化属性,方便访问调用。

本次展示的是面向对象烤地瓜和搬家具的两个实例,了解面向对象的基础知识。如有错误,请多指教。

python---面向对象实例(烤地瓜、搬家具)相关推荐

  1. python面向对象实例王者荣耀_大牛程序员利用Python开发王者荣耀带妹神器,一路直奔上王者...

    王者荣耀 -很火的手游-简直老少通吃-令人发指-虽然操作简单-但为什么你还是会被虐, 其实 是有技巧的--本文Python大神带你研究王者荣耀各类英雄的出装小技巧,让你成为大神般的存在 前期准备 环境 ...

  2. python面向对象实例王者荣耀_Python设计王者荣耀人物结构(63)*

    今天我们作为游戏程序员,设计王者荣耀人物结构.王者荣耀,玩家可以选择很多英雄,每种英雄有很多属性,请用我们学过的list和字典,将这些内容表达出来,并用循环遍历你创造的英雄,并打印出他们的属性出来. ...

  3. python面向对象实例王者荣耀_PYTHON-面向对象-练习-王者荣耀 对砍游戏

    # 王者荣耀 对砍游戏 # 两个英雄可以对砍 如果血量小于等于0 就GG # 所需的对象 # 英雄对象 """ 亚瑟 属性 类型 血量 名称 技能 Q 跳起来给你一刀 伤 ...

  4. Python|面向对象实例:银行卡类

    # 编写一个银行卡类 # 属性:银行名称 卡号.密码.姓名.余额 #方法:登录,存款class Card():def __init__(self,cnum,cpwd,cname,cbalance):s ...

  5. python面向对象实例王者荣耀_Python3 类与对象之王者荣耀对战小游戏

    王者荣耀对战小游戏 # 定义英雄: 亚瑟 class Arthur: hero_type = 'Tank' def __init__(self, attack_value=164, armor=98, ...

  6. python面向对象生动讲解_Python面向对象语法精讲

    本专题的内容结构: 第一部分主要是:面向对象基础 第二部分主要是:面向对象进阶 第一部分的结构: unit1:面向对象编程模式: (1),面向对象编程思想 (2),面向对象的三个特征 (3),Pyth ...

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

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

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

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

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

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

  10. python的实例属性和静态属性_Python面向对象之静态属性、类方法与静态方法分析...

    本文实例讲述了Python面向对象之静态属性.类方法与静态方法.分享给大家供大家参考,具体如下: 1. 静态属性:在函数前加@property,将函数逻辑"封装"成数据属性,外部直 ...

最新文章

  1. 安卓高手之路之(架构设计)
  2. Servlet优化之BaseServlet
  3. laravel redis mysql_Laravel 5.1 Redis 缓存配合 MySQL 数据库实现「用户最后活跃时间」功能...
  4. c 结构体在声明时赋值_Java基础知识 初识Java 循环结构进阶 数组 数据类型 各种运算符...
  5. 剖析Fragment的Pause生命周期全过程
  6. 如何进行服务器选购[转]
  7. 【Java】函数式编程
  8. Python多线程编程的一个掉进去不太容易爬出来的坑
  9. android excel 筛选功能,Android 实现 Excel 解析 xls 和 xlsx,方法也可以很简单
  10. 使用wsdl2java编写webservice客户端
  11. Windows XP3安装internet 信息服务(IIS)时对策
  12. Android Camera processCaptureResult 分析
  13. 【MATLAB笔记】绘制图中图
  14. C语言 crc32校验算法原理,CRC循环冗余校验的实现原理
  15. vue在一个方法执行完后执行另一个方法
  16. 将bios中的boot mode 从uefi改为legacy之后,进不去bios
  17. Platform机制
  18. 一个简单的基于形态学处理的报纸图像版面分割算法matlab仿真
  19. EasySwoole使用phpexcel
  20. matlab计算涡度的函数_涡度的计算

热门文章

  1. 台式电脑接路由器步骤_台式电脑连接网络步骤
  2. android切换高德导航,Android调起高德地图
  3. 怎样注册完申请个人电子邮箱?2022邮箱号码大全速看
  4. Web3对于我们普通人意味着什么?
  5. 记录一下我的phpcms下载模板的下载列表页面不能够显示出列表页面
  6. mac下安装photoshop
  7. 微信邮箱格式是什么意思?为什么我们都在使用微信邮箱?
  8. C++基础之什么是面向对象
  9. 记英语单词中第一个易混淆的单词组attain achieve acquire
  10. HDCP @ Locality Check