python基础之面向对象(三))(实战:烤地瓜(SweetPotato))
一、分析“烤地瓜”的属性和方法
示例属性如下:
cookedLevel : 这是数字;0~3表示还是生的,超过3表示半生不熟,超过5表示已经烤好了,超过8表示已经烤成木炭了!我们的地瓜开始时是生的
cookedString : 这是字符串;描述地瓜的生熟程度
condiments : 这是地瓜的配料列表,比如番茄酱、芥末酱等
示例方法如下:
cook() : 把地瓜烤一段时间
addCondiments() : 给地瓜添加配料
__init__() : 设置默认的属性
__str__() : 让print的结果看起来更好一些
二、定义类,并且定义__init__()方法
第一步:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Renyz
# 定义一个类
class SweetPotato:
def __init__(self):# 初始化,描述地瓜生疏的程度
self.cookedstring = "生的" # 属性,表示地瓜的生熟程度,默认是生的
self.cookedlevel = 0 # 记录地瓜生疏的程度
#0~3表示还是生的,超过3表示半生不熟,超过5表示已经烤好了,超过8表示已经烤成木炭了!
# 烤地瓜
def cook(self,cooked_time): #cooked_time表示时间长度
if cooked_time >=0 and cooked_time<3:
self.cookedstring = "地瓜生的" # self.表示改的是对象的属性
elif cooked_time >=3 and cooked_time<5:
self.cookedstring = "地瓜半生不熟"
elif cooked_time>=5 and cooked_time <8:
self.cookedstring = "地瓜熟了"
elif cooked_time >8:
self.cookedstring = "地瓜烤糊了"
# 创建一个地瓜对象
di_gua = SweetPotato()
# 调用方法,开始烤地瓜
di_gua.cook(1)
print(di_gua) # 打印的内存地址
执行结果-->>
<__main__.SweetPotato object at 0x000000E2665980F0>
第二步:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Renyz
# 定义一个类
class SweetPotato:
def __init__(self):# 初始化,描述地瓜生疏的程度
self.cookedstring = "生的" # 属性,表示地瓜的生熟程度,默认是生的
self.cookedlevel = 0 # 记录地瓜生疏的程度
#0~3表示还是生的,超过3表示半生不熟,超过5表示已经烤好了,超过8表示已经烤成木炭了!
# 烤地瓜
def cook(self,cooked_time): #cooked_time表示时间长度
self.cookedlevel += cooked_time
if self.cookedlevel >=0 and self.cookedlevel<3:
self.cookedstring = "地瓜生的" # self.表示改的是对象的属性
elif self.cookedlevel >=3 and self.cookedlevel<5:
self.cookedstring = "地瓜半生不熟"
elif self.cookedlevel >=5 and self.cookedlevel <8:
self.cookedstring = "地瓜熟了"
elif self.cookedlevel >8:
self.cookedstring = "地瓜烤糊了"
def __str__(self): # 定义str方法 ;return 返回什么就打印什么
return "地瓜的状态:%s(%d)"%(self.cookedstring,self.cookedlevel)
# 表示查看烤的程度和时间
# 创建一个地瓜对象
di_gua = SweetPotato()
print(di_gua)
# 调用方法,开始烤地瓜
di_gua.cook(1)
print(di_gua)
di_gua.cook(1)
print(di_gua)
di_gua.cook(3)
print(di_gua)
执行结果-->>
地瓜的状态:生的(0)
地瓜的状态:地瓜生的(1)
地瓜的状态:地瓜生的(2)
地瓜的状态:地瓜熟了(5)
三、给地瓜添加佐料
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Renyz
# 定义一个类
class SweetPotato:
def __init__(self):# 初始化,描述地瓜生疏的程度
self.cookedstring = "生的" # 属性,表示地瓜的生熟程度,默认是生的
self.cookedlevel = 0 # 记录地瓜生疏的程度
#0~3表示还是生的,超过3表示半生不熟,超过5表示已经烤好了,超过8表示已经烤成木炭了!
self.condiments = [] # 属性
# 烤地瓜
def cook(self,cooked_time): #cooked_time表示时间长度
self.cookedlevel += cooked_time
if self.cookedlevel >= 0 and self.cookedlevel < 3:
self.cookedstring = "地瓜生的" # self.表示改的是对象的属性
elif self.cookedlevel >= 3 and self.cookedlevel < 5:
self.cookedstring = "地瓜半生不熟"
elif self.cookedlevel >= 5 and self.cookedlevel < 8:
self.cookedstring = "地瓜熟了"
elif self.cookedlevel > 8:
self.cookedstring = "地瓜烤糊了"
def zouliao(self,items): #定义添加佐料的函数
self.condiments.append(items)# 第一个.表示属性,第二个.表示添加
def __str__(self): # 定义str方法 ;return 返回什么就打印什么
return "地瓜的状态:%s(%d),添加是佐料有%s"%(self.cookedstring,self.cookedlevel,str(self.condiments))
# 表示查看烤的程度和时间
# 创建一个地瓜对象
di_gua = SweetPotato()
print(di_gua)
# 调用方法,开始烤地瓜
di_gua.cook(1)
print(di_gua)
di_gua.zouliao("槟榔")
di_gua.cook(1)
print(di_gua)
di_gua.zouliao("芥末")
di_gua.cook(1)
di_gua.zouliao("芥末")
print(di_gua)
执行结果-->>
地瓜的状态:生的(0),添加是佐料有[]
地瓜的状态:地瓜生的(1),添加是佐料有[]
地瓜的状态:地瓜生的(2),添加是佐料有['槟榔']
地瓜的状态:地瓜半生不熟(3),添加是佐料有['槟榔', '芥末', '芥末']
python基础之面向对象(三))(实战:烤地瓜(SweetPotato))的更多相关文章
- Python 基础 四 面向对象杂谈
Python 基础 四 面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...
- 自学Python之路-Python基础+模块+面向对象+函数
自学Python之路-Python基础+模块+面向对象+函数 自学Python之路[第一回]:初识Python 1.1 自学Python1.1-简介 1.2 自学Python1.2-环境的 ...
- (转)Python成长之路【第九篇】:Python基础之面向对象
一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...
- Python基础语法(三)
Python基础语法(三) 1. 数值型数据结构 1.1 要点 在之前的博客也有提到,数值型数据结构在这里就不过多介绍了.在这里提及一些需要知道的知识点. int.float.complex.bool ...
- 二十. Python基础(20)--面向对象的基础
二十. Python基础(20)--面向对象的基础 1 ● 类/对象/实例化 类:具有相同属性.和方法的一类人/事/物 对象(实例): 具体的某一个人/事/物 实例化: 用类创建对象的过程→类名(参数 ...
- python基础,函数,面向对象,模块练习
---恢复内容开始--- python基础,函数,面向对象,模块练习 1,简述python中基本数据类型中表示False的数据有哪些? # [] {} () None 0 2,位和字节的关系? # ...
- python基础篇(三)
PYTHON基础篇(三) 装饰器 A:初识装饰器 B:装饰器的原则 C:装饰器语法糖 D:装饰带参数函数的装饰器 E:装饰器的固定模式 装饰器的进阶 A:装饰器的wraps方法 B:带参数的装饰器 C ...
- Day7 - Python基础7 面向对象编程进阶
Python之路,Day7 - 面向对象编程进阶 本节内容: 面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个 ...
- Python基础7 面向对象编程进阶
本节内容: 面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 经典 ...
- Python基础-week06 面向对象编程基础
一.面向对象编程 1.面向过程 与 面向对象编程 面向过程的程序设计: 核心是 过程二字,过程指的是解决问题的步骤,即先干什么再干什么......面向过程的设计就好比精心设计好一条流水线,是一种机械式 ...
随机推荐
- html页面自定义文字水印效果案例
在系统开发过程中,一些数据或页面比较敏感的地方,客户会要求实现水印效果,防止内部人员截图或拍照泄露信息. 自定义文字水印顾名思义就是利用js在完成页面渲染的同时,往页面的最底层动态生成多个带水印信息的 ...
- 防火墙双出口环境下私网用户通过NAPT访问Internet
组网图形 组网需求 如图1所示,某企业在网络边界处部署了FW作为安全网关,并分别从运营商ISP1和ISP2处购买了宽带上网服务,实现内部网络接入Internet的需求. 具体需求如下: 研发部门和市场 ...
- 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之基础配置-04
自动化kolla-ansible部署ubuntu20.04+openstack-victoria之基础配置-04 欢迎加QQ群:1026880196 进行交流学习 近期我发现网上有人转载或者复制原创博 ...
- JDBC_04_使用Properties集合保存JDBC所需配置信息
使用Properties集合保存JDBC所需配置信息 将JDBC连接所需的配置信息保存在一个配置文件中,然后使用Properties将该信息存储起来,动态的完成JDBC的配置连接 代码: import ...
- Docker安装Nacos动态服务发现、配置和服务管理平台
一.通过DockerHub拉镜像,版本查看:https://github.com/nacos-group/nacos-docker //稳定版,有权限 docker pull nacos/nacos- ...
- JMeter 实战案例
案例1:博客网站后端测试 案例2:JPetStore 应用 案例1:博客网站后端测试 测试目标 测试博客网站后端的常用 HTTP 接口的访问方法. 展示 HTTP 请求的各类使用方法. 展示提取 JS ...
- 配置 ESLint 自动格式化自闭合标签(Self closing tag)
对于没有子元素或不需要子元素的 HTML 标签,通常写成其自闭合的形式会显得简洁些, - <SomeComponent></SomeComponent> + <SomeC ...
- hdu5249KPI动态中位数(两个set)
题意(中问题直接粘题意吧) KPI Problem Descr ...
- Windows核心编程 第七章 线程的调度、优先级和亲缘性(下)
7.6 运用结构环境 现在应该懂得环境结构在线程调度中所起的重要作用了.环境结构使得系统能够记住线程的状态,这样,当下次线程拥有可以运行的C P U时,它就能够找到它上次中断运行的地方. 知道这样低层 ...
- 神经网络与机器学习 笔记—LMS(最小均方算法)和学习率退火
神经网络与机器学习 笔记-LMS(最小均方算法)和学习率退火 LMS算法和Rosenblatt感知器算法非常想,唯独就是去掉了神经元的压制函数,Rosenblatt用的Sgn压制函数,LMS不需要压制 ...