一、分析“烤地瓜”的属性和方法

示例属性如下:

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))的更多相关文章

  1. Python 基础 四 面向对象杂谈

    Python 基础  四  面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...

  2. 自学Python之路-Python基础+模块+面向对象+函数

    自学Python之路-Python基础+模块+面向对象+函数 自学Python之路[第一回]:初识Python    1.1 自学Python1.1-简介    1.2 自学Python1.2-环境的 ...

  3. (转)Python成长之路【第九篇】:Python基础之面向对象

    一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...

  4. Python基础语法(三)

    Python基础语法(三) 1. 数值型数据结构 1.1 要点 在之前的博客也有提到,数值型数据结构在这里就不过多介绍了.在这里提及一些需要知道的知识点. int.float.complex.bool ...

  5. 二十. Python基础(20)--面向对象的基础

    二十. Python基础(20)--面向对象的基础 1 ● 类/对象/实例化 类:具有相同属性.和方法的一类人/事/物 对象(实例): 具体的某一个人/事/物 实例化: 用类创建对象的过程→类名(参数 ...

  6. python基础,函数,面向对象,模块练习

    ---恢复内容开始--- python基础,函数,面向对象,模块练习 1,简述python中基本数据类型中表示False的数据有哪些? #  [] {} () None 0 2,位和字节的关系? # ...

  7. python基础篇(三)

    PYTHON基础篇(三) 装饰器 A:初识装饰器 B:装饰器的原则 C:装饰器语法糖 D:装饰带参数函数的装饰器 E:装饰器的固定模式 装饰器的进阶 A:装饰器的wraps方法 B:带参数的装饰器 C ...

  8. Day7 - Python基础7 面向对象编程进阶

    Python之路,Day7 - 面向对象编程进阶   本节内容: 面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个 ...

  9. Python基础7 面向对象编程进阶

    本节内容: 面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 经典 ...

  10. Python基础-week06 面向对象编程基础

    一.面向对象编程 1.面向过程 与 面向对象编程 面向过程的程序设计: 核心是 过程二字,过程指的是解决问题的步骤,即先干什么再干什么......面向过程的设计就好比精心设计好一条流水线,是一种机械式 ...

随机推荐

  1. 201871010113-贾荣娟 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 18级卓越班 这个作业要求链接 实验三-软件工程结对项目 这个课程学习目标 掌握软件开发流程,提高自身能力 这个作业在哪些方面帮助我实现了学习目标 本次实验让我对软件工程 ...

  2. BUAAOO第一单元代码分析

    1.HomeWork1 思路 一个主类用于字符串得操作, 一个Poly类用于对一个多项式进行抽象,用Arraylist来对term进行封装.内部含有求导方法,添加并合并同类项的方法,toString方 ...

  3. OO UNIT 1 个人单元总结

    面向对象课程--第一单元个人总结 作业分析 第一次作业 概要 本次作业主要对简单幂函数的多项式进行求导计算,要点在于对输入字符串的处理,利用正则表达式匹配即可,并且需要对输出表达式的长度进行优化. 度 ...

  4. (Set, Map, Collections工具类)JAVA集合框架二

    Java集合框架部分细节总结二 Set 实现类:HashSet,TreeSet HashSet 基于HashCode计算元素存放位置,当计算得出哈希码相同时,会调用equals判断是否相同,相同则拒绝 ...

  5. JavaWeb 补充(JSP&EL&JSTL)

    1. JSP:     1. 指令     2. 注释     3. 内置对象 2. MVC开发模式 3. EL表达式 4. JSTL标签 5. 三层架构 JSP: 1. 指令     * 作用:用于 ...

  6. Spring Boot demo系列(二):简单三层架构Web应用

    2021.2.24 更新 1 概述 这是Spring Boot的第二个Demo,一个只有三层架构的极简Web应用,持久层使用的是MyBatis. 2 架构 一个最简单的Spring Boot Web应 ...

  7. Go-25-文件管理

    FileInfo接口 package main import ( "fmt" "os" ) // FileInfo 接口文件的信息包括文件名.文件大小.修改权限 ...

  8. Deployment常用命令

    // 查询详细信息,获取升级速度 kubectl describe deployments // 暂停升级 kubectl rollout pause deployment/deploymentngi ...

  9. 阿里巴巴面试-Java后端-社招5面技术总结(Offer已拿)

    最近接到阿里妈妈的面试通知,历经一个月,虽然过程挺坎坷,但总算是拿到了offer.这里简单记录下面试所遇问题,仅供各位大佬参考. 由于前面两面的时间过去的有点久了,只能根据记忆大概写些记得问题. 部门 ...

  10. CPF 入门教程 - 设计器和模板库的使用(五)

    CPF netcore跨平台UI框架 系列教程 CPF 入门教程(一) CPF 入门教程 - 数据绑定和命令绑定(二) CPF 入门教程 - 样式和动画(三) CPF 入门教程 - 绘图(四) CPF ...