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

示例属性如下:

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. Java(299-314)【线程、同步】

    1.多线程的原理 2.多线程内存图解 开辟新的栈空间,多个线程之间互不影响 3.Thread类的常用方法 getName()返回该线程的名称 Thread类的子类 获取线程的名称:     1.使用T ...

  2. 直接跑day07中现成的代码可能出现的问题

    由于前面课程中敲代码可能存在写bug且实战作业没有完成,因此今天直接把资料里的代码拿来用.遇到两个问题 问题1:Cannot find JRE '1.8'. You can specify JRE t ...

  3. Day17_105_IO_BufferWriter带缓冲区的字符输出流

    BufferWriter带缓冲区的字符输出流 * OutputStreamWriter(); 转换流,可以将文件字节输出流转换为文件字符输出流 * 代码: import java.io.*; publ ...

  4. zabbix容器化安装及监控docker应用

    一.zabbix agent2 介绍 从Zabbix 4.4之后,官方推出了Zabbix Agent 2,意味着zabbix 不在只是物理机监控的代名词,现在你可以使用Go为Zabbix编写插件,来监 ...

  5. postgresql高级应用之行转列&汇总求和

    postgresql高级应用之行转列&汇总求和 轉載請注名出處 https://www.cnblogs.com/funnyzpc/p/14732165.html 前言 节前公司业务方需要做一個 ...

  6. 【github】 加速国内 Github 访问,下载,的9种方案!

    原文参考 https://mp.weixin.qq.com/s/ptFBjWXj88fsI3Oh6PghRA 1. GitHub 镜像访问 这里提供两个最常用的镜像地址: https://github ...

  7. php图片合成【png图片】

    php 图片合成[png图片] 示例代码 <?php header("Content-type:text/html;charset=utf-8"); error_report ...

  8. DexExtractor的原理分析和使用说明

    本文博客链接:http://blog.csdn.net/qq1084283172/article/details/53557894 周末有空就写下博客了,今天来扯一扯Android平台的脱壳工具Dex ...

  9. POJ3233不错的矩阵(矩阵套矩阵)

    题意:        给一个n*n的矩阵A,然后求S=A + A^2 + A^3 + ..+ A^k. 思路:       矩阵快速幂,这个题目挺新颖的,以往的矩阵快速幂都是退出公式,然后构造矩阵,这 ...

  10. MySQL数据库及注入方法

    目录 MySQL数据库 mysql中比较常用的一些函数: 判断MySQL数据库是否存在SQL注入 MySQL数据库文件结构 MySQL数据库密码破解 MySQL UDF提权 MySQL数据库 MySQ ...