python---面向对象实例(烤地瓜、搬家具)
目录
实例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---面向对象实例(烤地瓜、搬家具)相关推荐
- python面向对象实例王者荣耀_大牛程序员利用Python开发王者荣耀带妹神器,一路直奔上王者...
王者荣耀 -很火的手游-简直老少通吃-令人发指-虽然操作简单-但为什么你还是会被虐, 其实 是有技巧的--本文Python大神带你研究王者荣耀各类英雄的出装小技巧,让你成为大神般的存在 前期准备 环境 ...
- python面向对象实例王者荣耀_Python设计王者荣耀人物结构(63)*
今天我们作为游戏程序员,设计王者荣耀人物结构.王者荣耀,玩家可以选择很多英雄,每种英雄有很多属性,请用我们学过的list和字典,将这些内容表达出来,并用循环遍历你创造的英雄,并打印出他们的属性出来. ...
- python面向对象实例王者荣耀_PYTHON-面向对象-练习-王者荣耀 对砍游戏
# 王者荣耀 对砍游戏 # 两个英雄可以对砍 如果血量小于等于0 就GG # 所需的对象 # 英雄对象 """ 亚瑟 属性 类型 血量 名称 技能 Q 跳起来给你一刀 伤 ...
- Python|面向对象实例:银行卡类
# 编写一个银行卡类 # 属性:银行名称 卡号.密码.姓名.余额 #方法:登录,存款class Card():def __init__(self,cnum,cpwd,cname,cbalance):s ...
- python面向对象实例王者荣耀_Python3 类与对象之王者荣耀对战小游戏
王者荣耀对战小游戏 # 定义英雄: 亚瑟 class Arthur: hero_type = 'Tank' def __init__(self, attack_value=164, armor=98, ...
- python面向对象生动讲解_Python面向对象语法精讲
本专题的内容结构: 第一部分主要是:面向对象基础 第二部分主要是:面向对象进阶 第一部分的结构: unit1:面向对象编程模式: (1),面向对象编程思想 (2),面向对象的三个特征 (3),Pyth ...
- python面向对象3-多层继承、super()、私有权限、多态、类属性实例属性、类方法和静态方法
python面向对象1–类.对象.属性.魔法方法 python面向对象2–综合案例:烤地瓜.搬家具.单继承.多继承 python面向对象3-多层继承.super().私有权限.多态.类属性实例属性.类 ...
- [转载] python面向对象编程实例
参考链接: Python面向对象编程 案例介绍 本案例设计的是:为购置的新房添置家具,在本案例中,我们需要给出指定的房屋和面积,在为其添置家具的过程中,各家具的面积之和不能超过房屋面积的总和.房屋及家 ...
- Python面向对象-概念、类、实例
Python面向对象-概念.类.实例 OOP--Object Oriented Programming,面向对象编程,是一种程序设计思想.该思想将对象作为程序的基本单元,一个对象包含了数据和操作数据的 ...
- python的实例属性和静态属性_Python面向对象之静态属性、类方法与静态方法分析...
本文实例讲述了Python面向对象之静态属性.类方法与静态方法.分享给大家供大家参考,具体如下: 1. 静态属性:在函数前加@property,将函数逻辑"封装"成数据属性,外部直 ...
最新文章
- 安卓高手之路之(架构设计)
- Servlet优化之BaseServlet
- laravel redis mysql_Laravel 5.1 Redis 缓存配合 MySQL 数据库实现「用户最后活跃时间」功能...
- c 结构体在声明时赋值_Java基础知识 初识Java 循环结构进阶 数组 数据类型 各种运算符...
- 剖析Fragment的Pause生命周期全过程
- 如何进行服务器选购[转]
- 【Java】函数式编程
- Python多线程编程的一个掉进去不太容易爬出来的坑
- android excel 筛选功能,Android 实现 Excel 解析 xls 和 xlsx,方法也可以很简单
- 使用wsdl2java编写webservice客户端
- Windows XP3安装internet 信息服务(IIS)时对策
- Android Camera processCaptureResult 分析
- 【MATLAB笔记】绘制图中图
- C语言 crc32校验算法原理,CRC循环冗余校验的实现原理
- vue在一个方法执行完后执行另一个方法
- 将bios中的boot mode 从uefi改为legacy之后,进不去bios
- Platform机制
- 一个简单的基于形态学处理的报纸图像版面分割算法matlab仿真
- EasySwoole使用phpexcel
- matlab计算涡度的函数_涡度的计算