IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Python 从入门到实践:练习9-6-冰淇淋小店 -> 正文阅读

[开发工具]Python 从入门到实践:练习9-6-冰淇淋小店

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

方案一:代码如下:

class Restaurant:
	"""一次模拟餐馆的简单尝试(9-1练习)"""
	def __init__(self,restaurant_name,cuisine_type):
		"""初始化属性restaurant_name与cuisine_type"""
		self.restaurant_name = restaurant_name
		self.cuisine_type = cuisine_type
	def describe_restaurant(self):
		"""模拟餐馆描述内容"""
		print(f"this is {self.restaurant_name} and {self.cuisine_type}")
	def open_restaurant(self):
		"""模拟餐馆打开时公告"""
		print("now,restaurant is open")


class IceCreamStand(Restaurant):
    """子类IceCreamStand"""
	def __init__(self,restaurant_name,cuisine_type):
        """初始化父类属性"""
		super().__init__(restaurant_name,cuisine_type)
        """给定子类特别属性"""
		self.flavors = ["草莓味","西瓜味","奶油味"]

	def read_flavors(self):
        """利用for循环来打印不同风味"""
		for flavor in self.flavors:
			print(f"this is {flavor}")

my_icecream = IceCreamStand("A-ICECREAM","ICE")
print(my_icecream.describe_restaurant())
my_icecream.read_flavors()

注:若用IDLE出现:SyntaxError: inconsistent use of tabs and spaces in indentation

则考虑将注释部分修改格式即可。(可以用删除加回车找到注释的合适位置。)

结果:

this is A-ICECREAM and ICE
this is 草莓味
this is 西瓜味
this is 奶油味

方案二:

class IceCreamStand(Restaurant):
    """子类IceCreamStand"""
	def __init__(self,restaurant_name,cuisine_type):
        """初始化父类属性"""
		super().__init__(restaurant_name,cuisine_type)
        """给定子类特别属性"""
		self.flavors = ["草莓味","西瓜味","奶油味"]

	def read_flavors(self):
        """利用for循环来打印不同风味,与方案一区别在结果显示部分"""
        print(f"这里有以下这些风味:")
		for flavor in self.flavors:
			print(flavor)

结果不再赘述,可自行操作。

方案三:其他对于子类特别属性的代码方式还有可以在子类中单独增加一个函数,该函数采用在列表中增加元素的方式

class Restaurant:   
    --snip--
class IceCreamStand(Restaurant):
    def __init__(self,restaurant_name,cuisine_type):
		super().__init__(restaurant_name,cuisine_type)
		self.flavors = ["草莓味","西瓜味","奶油味"]
    def flavors(self):
        self.flavors.append()
    def read_flavors(self):
        print(f"this is {self.flavors}")
    """用实例验证"""

my_icecream = IceCreamStand("A-ICECREAM","ICE")
my_icecream.read_flavors()

结果显示:

this is ['草莓味', '西瓜味', '奶油味']

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:45:05  更:2021-09-04 17:46:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:40:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码