赞
踩
学习了Python编程从入门到实践的第九章,本次的内容是类的创建、对象的实例化以及继承等内容。
1. 创建一个名为Restaurant的类,其方法__init__()设置两个属性:restaurant_name 和cuisine_type
class Restaurant():
def __init__(self,restaurant_name,cuisine_type):
self.restaurant_name=restaurant_name
self.cuisine_type=cuisine_type
2. 创建一个名为describe_restaurant()的方法和一个名为open_restaurant()的方法,其中前者打印前述两项信息,而后者打印一条消息,指出餐馆正在营业。根据这个类创建一个名为restaurant的实例,分别打印其两个属性,再调用前述两个方法。
def describe_restaurant(self):
print('餐馆名:'+self.restaurant_name+', '+'菜系:'+self.cuisine_type)
def open_restaurant(self):
print(self.restaurant_name+' is opening!')
3. 根据你为完成练习9-1 而编写的类创建三个实例,并对每个实例调用方法describe_restaurant()。
sun=Restaurant('Sun','Shanghai')
sun.describe_restaurant()
moon=Restaurant('Moon','Beijing')
moon.describe_restaurant()
star=Restaurant('Star','Guangzhou')
star.describe_restaurant()
4. 打印结果:
餐馆名:Sun, 菜系:Shanghai
餐馆名:Moon, 菜系:Beijing
餐馆名:Star, 菜系:Guangzhou
5. 添加一个名为set_number_served()的方法,它让你能够设置就餐人数。调用这个方法并向它传递一个值,然后再次打印这个值。
####修改describe_restaurant方法,增加显示就餐人数
def describe_restaurant(self):
print('餐馆名:'+self.restaurant_name+', '+'菜系:'+self.cuisine_type+', '+'就餐人数:'+str(self.number_served))
def set_number_served(self,number):
if number>=self.number_served:
self.number_served=number
else:
print('无法更新')
6. 添加一个名为increment_number_served()的方法,它让你能够将就餐人数递增。调用这个方法并向它传递一个这样的值:你认为这家餐馆每天可能接待的就餐人数。
def increment_number_served(self,number):
self.number_served += number
7. 打印结果:
餐馆名:Sun, 菜系:Shanghai, 就餐人数:20
餐馆名:Sun, 菜系:Shanghai, 就餐人数:35
8. 继承父类创建子类,编写一个名为IceCreamStand的类,让它继承Restaurant的类。添加一个名为flavors 的属性,用于存储一个由各种口味的冰淇淋组成的列表。
class IceCreamStand(Restaurant):
def __init__(self,restaurant_name,cuisine_type):
super().__init__(restaurant_name,cuisine_type)
self.flavors=['apple','watermelon','peach']
9. 编写一个显示这些各种口味冰淇淋的方法。
def PrintFlavor(self):
print('冰淇淋的口味有:'+str(self.flavors).strip('[').strip(']'))
10. 创建一个IceCreamStand 实例,并调用这个方法。
pink=IceCreamStand('Pink','Kunmming')
pink.describe_restaurant()
pink.PrintFlavor()
11. 实验结果:
餐馆名:Pink, 菜系:Kunmming, 就餐人数:0
冰淇淋的口味有:'apple', 'watermelon', 'peach'
12. 改进,编写一个名为Flavor 的类,它只有一个属性——flavorsList将方法PrintFlavor()移到这个类中,在IceCreamStand类中,将一个Flavor 实例用作其属性。
class IceCreamStand(Restaurant):
def __init__(self,restaurant_name,cuisine_type):
super().__init__(restaurant_name,cuisine_type)
self.flavors=Flavors()
class Flavors():
def __init__(self):
self.flavorsList = ['apple', 'watermelon', 'peach']
def PrintFlavor(self):
print('冰淇淋的口味有:'+str(self.flavorsList).strip('[').strip(']'))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。