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

示例属性如下:

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. UnitOneSummary

    目录 一.程序结构分析 第一次作业 第二次作业 第三次作业 二.Test & Bugs 三.设计模式 四.总结与反思 一.程序结构分析 第一次作业 思路: 1.输入预处理: 去除空格和\t 替 ...

  2. sqlserver 计算同比,环比增长

    /****** Script for SelectTopNRows command from SSMS ******/ SELECT [fdSequenceID] ,[fdInnerTime] ,[f ...

  3. Spring Boot自动配置原理

    使用Spring Boot之后,一个整合了SpringMVC的WEB工程开发,变的无比简单,那些繁杂的配置都消失不见了,这 是如何做到的? 一切魔力的开始,都是从我们的main函数来的,所以我们再次来 ...

  4. manjaro找不到默认键盘布局

    1 问题描述 manjaro安装fcitx后,没有默认的键盘布局,不是这样: 而是: 2 解决方案 解决方案在启动fcitx时就已经有提示了: 缺少了libjson-c这个库,直接使用pacman搜索 ...

  5. Go 包管理与依赖查找顺序

    目录 1. 规则: 2. 编译时的依赖包查找机制 3.vendor vendor的层级搜索 4. modules 1. 规则: 同一目录下只能存在一个包 目录和目录下源文件的包命名可以不同 当包名与目 ...

  6. shopify 学习链接整理

    shopify shopify packagist https://help.shopify.com/zh-CN/manual/apps/apps-by-shopify/script-editor/s ...

  7. hdu3400 两重三分

    题意:      题意给你两个公路 A-B C-D 和三个速度V(ab) V(cd) 和 V(两条公路之间) 问你从A到D的最短时间是多少. 思路:    一开始暴力了其中的一条边,每次加0.01,另 ...

  8. adbi学习:java hook实现机制

    adbi的java hook实现代码ddi不在之前下载的文件中,下载地址:https://github.com/crmulliner/ddi,具体的编译看readme里面很详细的介绍了.注意ddi代码 ...

  9. SSRF_FastCGI

    SSRF_FastCGI 目录 SSRF_FastCGI FastCGI协议 SSRF ssrf + fastcgi 参考 FastCGI协议 简介 Fast CGI源自旧版本的CGI 路由/结构图 ...

  10. JavaScript 中正则匹配时结果不一致的问题

    创建示例项目 考察如下场景,我们有个输入框组件,输入时同时进行校验. interface IInputProps { label: string; } function Input({ label } ...