Python入门小程序(二)

学习了Python编程从入门到实践的第九章,本次的内容是类的创建、对象的实例化以及继承等内容。


1. 创建一个名为Restaurant的类,其方法__init__()设置两个属性:restaurant_namecuisine_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(']'))

你可能感兴趣的:(Python入门小程序(二))