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.面向过程 与 面向对象编程 面向过程的程序设计: 核心是 过程二字,过程指的是解决问题的步骤,即先干什么再干什么......面向过程的设计就好比精心设计好一条流水线,是一种机械式 ...
随机推荐
- SAP QM 检验批跳号解决
SAP QM 检验批跳号解决 在生产系统中,发现存在检验批规则或不规则跳号问题. 首先,查看事务代码SNRO编号范围对象QLOSE中BUFFER字段值,将其设置为NO BUFFER(无缓冲) 如果还存 ...
- vs2019新建数据库后插入中文变问号
在使用VS创建了数据库后如果直接给字符类型插入中文内容的话查询结果插入的中文会以"?"的格式展现. 原因是因为默认创建的数据库的排序类型为拉丁文不支持中文. 所以需要讲这个排序的字 ...
- 2020-BUAA OO-面向对象设计与构造-第三单元总结
Part-1 JML总结 Section-1 理论基础 The Java Modeling Language (JML) is a behavioral interface specification ...
- keepalived安装及组合nginx配置负载实现高可用
目录 1. Keepalived安装配置 1.1 官网下载tar包 1.2 上传到指定目录安装 1.3 配置文件 1.4 配置nginx检测脚本文件 1.5 keepalived 启动/重启/停止/查 ...
- Python:函数解释(面向过程)
1. 函数概述 在编程的语境下,函数 (function) 是指一个有命名的.执行某个计算的语句序列 (sequence of statements) .函数可以针对某类问题建立了通用解决步骤(算法) ...
- poj_1700 题解
题目描述:在漆黑的夜里,四位旅行者来到了一座狭窄而且没有护栏的桥边. 如果不借助手电筒的话,大家是无论如何也不敢过桥去的. 不幸的是,四个人一共只带了一只手电筒,而桥窄得只够让两个人同时过. 如果各自 ...
- os shutil 模块
OS --- 操作系统接口 os.system(command) # 在python中执行系统指令 os.popen(command[, mode[, bufsize]]) #os.popen() 方 ...
- OO第四单元总结与课程总结
OO第四单元总结与课程总结 第四单元作业架构设计 总体分析:本单元作业的需求集中于对UML类图进行查询.对于查询操作来说自然的想法是提前预见到需要查询的内容,在一开始就采用适当的数据结构将必要的信息进 ...
- Mybatis的简单增删改查
刚开始学习Mybatis可以先看下官方文档,MyBatis是支持定制化SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis避免了几乎所有的JDBC代码和手工设置参数以及抽取结果集.MyBat ...
- 本地jar包安装Maven本地仓库
下载jar包 如果本地存在,可以忽略. 本地安装命令 mvn install:install-file -Dfile=D:\Environment\Java\JDK\lib\tools.jar -Dg ...