当前位置: 首页 > news >正文

python-17-零基础自学python-

学习内容:《python编程:从入门到实践》第二版

知识点:

类、子类、继承、调用函数

练习内容:

练习9-6:冰激凌小店

冰激凌小店是一种特殊的餐馆。编写一个名为IceCreamStand的类,让它继承为完成练习9-1或练习9-4而编写的Restaurant类。这两个版本的Restaurant类都可以,挑选你更喜欢的那个即可。添加一个名为flavors的属性,用于存储一个由各种口味的冰激凌组成的列表。编写一个显示这些冰激凌的方法。创建一个IceCreamStand实例,并调用这个方法。

我的代码&运行结果:

class Restaurant:def __init__ (self,restaurant_name,cuisine_type):self.restaurant_name = restaurant_nameself.cuisine_type = cuisine_typedef describe_restaurant(self):print(f"餐馆名,{self.restaurant_name}")print(f"餐馆类型,{self.cuisine_type}\n")def open_restaurant(self):print(f"{self.restaurant_name}正在营业中~\n")class IceCreamStand(Restaurant):#加上父类def __init__(self,restaurant_name,cuisine_type):super().__init__(restaurant_name,cuisine_type)self.flavors = 5def describe_icecream(self):print(f"这里有{self.flavors}种口味的冰淇淋,分别是:草莓、巧克力、抹茶、芒果和原味")icecream1 = IceCreamStand('DQ','冰淇淋店')
icecream1.describe_restaurant()
icecream1.open_restaurant()
icecream1.describe_icecream()

练习

注意点:

1.建立子类时,和父类关联的方法中,需要加self

2.super().这一句注意格式,和不需要加self,

如果出现这样的报错,就是属性的数量不一样了,需要再检查是否有写self之类的。

3.flavor的属性储存一个列表,我没有想好,一开始出现了以下报错:

一个方面是super后面没加(),另一方面是我对照课本后,flavors这个地方一般是数据,且,如果我需要和列表一起打印出来,不知道怎么做,我选择,把flavors作为一个口味总数,print的时候,分别概述不同的口味,我不知道对不对,是不是投机解题了。最后反正是打印出来的。

修改了代码如下,想要缩减flavors =['巧克力','抹茶','草莓','芒果','原味'],都会报错

class Restaurant:def __init__ (self,restaurant_name,cuisine_type):self.restaurant_name = restaurant_nameself.cuisine_type = cuisine_typedef describe_restaurant(self):print(f"餐馆名,{self.restaurant_name}")print(f"餐馆类型,{self.cuisine_type}\n")def open_restaurant(self):print(f"{self.restaurant_name}正在营业中~\n")class IceCreamStand(Restaurant):def __init__(self,restaurant_name,cuisine_type):super().__init__(restaurant_name,cuisine_type)#这里加flavors会显示not defineflavors =['巧克力','抹茶','草莓','芒果','原味']#去掉报错,flavors会显示not defineself.flavors = flavorsdef describe_icecream(self):flavors =['巧克力','抹茶','草莓','芒果','原味']#去掉报错,flavors会显示not definefor flavor in flavors:print(f"这里的口味有{flavor}")icecream1 = IceCreamStand('DQ','冰淇淋店')
icecream1.describe_restaurant()
icecream1.open_restaurant()
icecream1.describe_icecream()

总结&问题:

问题就是不知道列表这么写,是否合适。

http://www.lryc.cn/news/383511.html

相关文章:

  • Web应用和Tomcat的集成鉴权1-BasicAuthentication
  • 解决Linux下Java应用因内存不足而崩溃的问题
  • ardupilot开发 --- 视觉伺服 篇
  • KVM配置嵌套虚拟化
  • Springboot应用的信创适配-补充
  • 制图工具(14)导出图层字段属性信息表
  • 代码随想录——买股票的最佳时机Ⅱ(Leecode122)
  • 使用Servlet开发javaweb,请求常见错误详解及其解决办法【404、405、500】
  • 数据库管理-第210期 HaloDB-Oracle兼容性测试02(20240622)
  • SpringBoot实现定时任务的动态停止和更新
  • 【threejs】火焰特效制作
  • 五原则四实践,REST API安全性请谨记
  • 1390:食物链【NOI2001】
  • ICMAN液位检测——WS003B管道检测模组
  • YOLOv10使用教程及导读
  • AIGC 在前端流式获取内容SSE
  • 深度解析安全阀检测技术:方法与挑战
  • 网络安全--安全设备(一)Dos
  • <电力行业> - 《第3课:国家电网公司100条名词解释》
  • “论数据访问层设计技术及其应用”写作框架,系统架构设计师
  • Docker部署前端,动态配置后端地址
  • k8s强制删除一个 Pod
  • docker的安装配置及使用
  • 初阶 《操作符详解》 10. 逗号表达式
  • 【区分vue2和vue3下的element UI Loading 加载组件,分别详细介绍属性,事件,方法如何使用,并举例】
  • 数据结构:栈(stack)详解 c++信息学奥赛基础知识讲解
  • 电商返利系统的高并发处理与性能优化
  • NPM 常用命令
  • C++进修——C++核心编程
  • 【信息系统项目管理师知识点速记】项目文档管理