今天翻了之前的python面向对象的基础案例,发现一个很有趣的需求。差不多涵盖了面向对象的所有知识点。先记录一下。

需求:

题目:品尝饮料
1. 当输入 咖啡时,控制台显示:咖啡:苦

2. 如果没有该种饮料,控制台显示:     对不起!没有您输入的饮料类型。

推荐实现步骤:

1、建立一个python类Drink,应当做如下:
a、声明一个方法taste(),该方法负责输出饮料的味道;
 
2、建立Drink的具体子类:
a、分别建立Drink的子类:Coffee(代表咖啡),Beer(代表啤酒),Milk(代表牛奶);
b、实现taste()方法,要求在控制台打印各自的味道特征。

3、建立异常类DrinkNotFoundException
a、继承Exception
b、在Drink的方法getDrink(int drinkType)中声明引发DrinkNotFoundException异常,当传入的参数没有相对应的饮料类型时,抛出异常。
c、在使用getDrink方法的类中捕捉该异常。

4、建立Test测试模块,测试以上内容的正确性:

声明一个方法getDrink(),该方法负责输出饮料的类型
a、编写main方法,通过命令行传参的方式传入某种饮料的类型。
 b、在main方法中,调用getDrink方法,获得相应的饮料对象。注意捕获DrinkNotFoundException。
c、然后调用该饮料对象的taste()方法,输出该饮料的味道。
5、编译程序,并运行。

涉及到的知识点:

  1. 类的创建与函数的定义
  2. 继承关系,函数的重写特性
  3. 简单工厂模式
  4. 自定义异常,异常的捕获与抛出

实现代码:

class  DrinkNotFoundException(Exception):def __init__(self,value):self.__value = valuedef __str__(self):return repr(self.__value)class Drink(object):def taste(self):return
class Coffee(Drink):def taste(self):return '咖啡:苦'class Beer(Drink):def taste(self):return '啤酒:爽'class Milk(Drink):def taste(self):return '牛奶:甜'#  简单工厂模式    传入一个int或者是字符串类型的参数,可以根据判断,得到某一个类子类当中对应的对象。
# 减轻了调用者的难度,可以通过某一个条件直接返回对象。
# 缺点:后期增加新的饮品时就需要对于方法进行新的升级和改版,在python当中改版升级可以使用装饰器# 比如 :果果饮料城又有了新产品,果汁-4  返回果汁的对象   使用装饰器怎样完成。
def getDrink(drinktype):if drinktype == '1':return Coffee()elif drinktype =='2':return Beer()elif drinktype =='3':return Milk()else:raise DrinkNotFoundException('对不起,没有相应的饮品!')if __name__ == '__main__':# 传入int类型的数据获取到响应的对象while True:print('请输入您需要的饮品的类型,咖啡-1,啤酒-2,牛奶-3,退出-0')type = input()if type == '0':print('感谢您的使用,谢谢购买!!')breaktry:d = getDrink(type)print(d.taste())except DrinkNotFoundException as e:print(e)

代码虽简单,但是涉及知识比较广,能够作为面向对象的综合案例题目。

感谢您的阅读~

Python趣味课程:果果饮料店新品鉴赏相关推荐

  1. python趣味编程100例-儿童Python趣味编程课程

    儿童Python趣味编程课程 南京杜恩培训隶属于南京卡尔威特教育咨询有限公司,秉承"以人为本"的办学宗旨,致力于给每一位前来学习的学员专业优质的服务.中心成立于2002年,在南京已 ...

  2. python青少年趣味编程-青少年趣味编程Python系列课程--2018-07-17

    青少年趣味编程Python系列课程--2018-07-17 一.系列课程介绍 1.python入门(面向零基础12岁以上的小朋友)--将python基础与python游戏设计结合进行讲解 (1).父与 ...

  3. 儿童python编程教程-儿童Python趣味编程课程

    儿童Python趣味编程课程 南京杜恩培训隶属于南京卡尔威特教育咨询有限公司,秉承"以人为本"的办学宗旨,致力于给每一位前来学习的学员专业优质的服务.中心成立于2002年,在南京已 ...

  4. Python趣味百题-进阶篇-刘硕-专题视频课程

    Python趣味百题-进阶篇-11679人已学习 课程介绍         精选的30个实例都从趣味编程的角度出发,并兼顾实用性.实例涵盖了Python程序设计的基础知识和常用算法,很多实例来自编程大 ...

  5. Python趣味百题-初级篇-刘硕-专题视频课程

    Python趣味百题-初级篇-10167人已学习 课程介绍         精选的10个实例都从趣味编程的角度出发,并兼顾实用性.实例涵盖了Python程序设计的基础知识和常用算法,很多实例来自编程大 ...

  6. python趣味编程10例-Python趣味编程与精彩实例

    Python趣味编程与精彩实例 共19 章,前12章主要以Python 基础知识如文件创建.输出与变量.输入与判断.运算符和循环.列表和字典.函数编程.pygame的各种知识为主,13-19章则以游戏 ...

  7. 《Python趣味创意编程》新书上架了

    <Python趣味创意编程>案例视频 <Python趣味创意编程>新书上架,目前京东.淘宝.当当上搜书名就可以找到,比如: https://item.jd.com/130745 ...

  8. python课程-天津Python编程课程

    天津Python培训学校怎么选 Python近几年非常火热的编程语言,在网络爬虫.机器学习.人工智能.数据分析等领域得到广泛应用,现在国家计算机二级考试也有了Python的身影,但高校并没有相关课程, ...

  9. python精彩编程200例-Python趣味编程与精彩实例

    Python趣味编程与精彩实例 共19 章,前12章主要以Python 基础知识如文件创建.输出与变量.输入与判断.运算符和循环.列表和字典.函数编程.pygame的各种知识为主,13-19章则以游戏 ...

最新文章

  1. python的执行过程_在交互式环境中执行Python程序过程详解
  2. Word Embedding News | 词嵌入新鲜事:COVID-19特刊
  3. HDU5129 - Yong Zheng's Death
  4. java制作加载界面_Java如何制作启动界面?
  5. python可以做系统吗_哪个操作系统更适合用来做Python开发
  6. 计算机图标怎么隐藏cmd,一个神奇的bat批处理文件,更好的隐藏电脑里的文件或者文件夹...
  7. Chapter 5. MPEG-4 Visual
  8. 「AtCoder Grand018A」Getting Difference(GCD)
  9. 网易云音乐服务器code521,网易云音乐显示scode502原因及解决办法_专题_53货源网...
  10. js几种常见的设计模式
  11. 2021年美赛准备大全
  12. 计算机主板自动重启,电脑开机后自动重启,详细教您电脑开机后自动重启如何解决...
  13. 独家专访阿里云存储负责人吴结生:我经历的三个重大决策
  14. 网页音乐播放,看里面有没有什么好东西
  15. 2018 mysql 笔试题_2018秋招数据库笔试面试题汇总
  16. vm使用PE安装系统(1)
  17. 使用numpy实现李代数se(3)和SE(3)之间的指对数映射
  18. 安卓JSON格式化工具
  19. 对零基础java学习者的建议
  20. 黑猫详解【UFS HCI】第1篇:UFSHCI系统框架介绍

热门文章

  1. 模仿支付宝输入支付密码的UI,带JavaScript 密码输入校验功能
  2. PyCharm使用教程(mac版教程)
  3. 标梵带你了解你不知道的js
  4. 服务器如何修改密码复杂度,服务器密码策略
  5. 4. 事务隔离级别之Read Uncommitted
  6. hdu - 3498 - whosyourdaddy(重复覆盖DLX)
  7. 我的csdn之做好成为一名程序员的觉悟
  8. qbzt day5 下午
  9. 众头领直送下山 水浒传
  10. 微博解析:Vlog视频榜已上线!最具有营销优势的微博投广形式怎么玩?