Python趣味课程:果果饮料店新品鉴赏
今天翻了之前的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、编译程序,并运行。
涉及到的知识点:
- 类的创建与函数的定义
- 继承关系,函数的重写特性
- 简单工厂模式
- 自定义异常,异常的捕获与抛出
实现代码:
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趣味课程:果果饮料店新品鉴赏相关推荐
- python趣味编程100例-儿童Python趣味编程课程
儿童Python趣味编程课程 南京杜恩培训隶属于南京卡尔威特教育咨询有限公司,秉承"以人为本"的办学宗旨,致力于给每一位前来学习的学员专业优质的服务.中心成立于2002年,在南京已 ...
- python青少年趣味编程-青少年趣味编程Python系列课程--2018-07-17
青少年趣味编程Python系列课程--2018-07-17 一.系列课程介绍 1.python入门(面向零基础12岁以上的小朋友)--将python基础与python游戏设计结合进行讲解 (1).父与 ...
- 儿童python编程教程-儿童Python趣味编程课程
儿童Python趣味编程课程 南京杜恩培训隶属于南京卡尔威特教育咨询有限公司,秉承"以人为本"的办学宗旨,致力于给每一位前来学习的学员专业优质的服务.中心成立于2002年,在南京已 ...
- Python趣味百题-进阶篇-刘硕-专题视频课程
Python趣味百题-进阶篇-11679人已学习 课程介绍 精选的30个实例都从趣味编程的角度出发,并兼顾实用性.实例涵盖了Python程序设计的基础知识和常用算法,很多实例来自编程大 ...
- Python趣味百题-初级篇-刘硕-专题视频课程
Python趣味百题-初级篇-10167人已学习 课程介绍 精选的10个实例都从趣味编程的角度出发,并兼顾实用性.实例涵盖了Python程序设计的基础知识和常用算法,很多实例来自编程大 ...
- python趣味编程10例-Python趣味编程与精彩实例
Python趣味编程与精彩实例 共19 章,前12章主要以Python 基础知识如文件创建.输出与变量.输入与判断.运算符和循环.列表和字典.函数编程.pygame的各种知识为主,13-19章则以游戏 ...
- 《Python趣味创意编程》新书上架了
<Python趣味创意编程>案例视频 <Python趣味创意编程>新书上架,目前京东.淘宝.当当上搜书名就可以找到,比如: https://item.jd.com/130745 ...
- python课程-天津Python编程课程
天津Python培训学校怎么选 Python近几年非常火热的编程语言,在网络爬虫.机器学习.人工智能.数据分析等领域得到广泛应用,现在国家计算机二级考试也有了Python的身影,但高校并没有相关课程, ...
- python精彩编程200例-Python趣味编程与精彩实例
Python趣味编程与精彩实例 共19 章,前12章主要以Python 基础知识如文件创建.输出与变量.输入与判断.运算符和循环.列表和字典.函数编程.pygame的各种知识为主,13-19章则以游戏 ...
最新文章
- python的执行过程_在交互式环境中执行Python程序过程详解
- Word Embedding News | 词嵌入新鲜事:COVID-19特刊
- HDU5129 - Yong Zheng's Death
- java制作加载界面_Java如何制作启动界面?
- python可以做系统吗_哪个操作系统更适合用来做Python开发
- 计算机图标怎么隐藏cmd,一个神奇的bat批处理文件,更好的隐藏电脑里的文件或者文件夹...
- Chapter 5. MPEG-4 Visual
- 「AtCoder Grand018A」Getting Difference(GCD)
- 网易云音乐服务器code521,网易云音乐显示scode502原因及解决办法_专题_53货源网...
- js几种常见的设计模式
- 2021年美赛准备大全
- 计算机主板自动重启,电脑开机后自动重启,详细教您电脑开机后自动重启如何解决...
- 独家专访阿里云存储负责人吴结生:我经历的三个重大决策
- 网页音乐播放,看里面有没有什么好东西
- 2018 mysql 笔试题_2018秋招数据库笔试面试题汇总
- vm使用PE安装系统(1)
- 使用numpy实现李代数se(3)和SE(3)之间的指对数映射
- 安卓JSON格式化工具
- 对零基础java学习者的建议
- 黑猫详解【UFS HCI】第1篇:UFSHCI系统框架介绍