当前位置:   article > 正文

Python入门-类_创建一个名为restaurant的类

创建一个名为restaurant的类
9-1 餐馆 :创建一个名为Restaurant 的类,其方法__init__() 设置两个属性:restaurant_name 和cuisine_type 。创建一个名

为describe_restaurant() 的方法和一个名为open_restaurant() 的方法,其中前者打印前述两项信息,而后者打印一条消息,指出餐馆正在营业。根据这个类创建一个名为restaurant 的实例,分别打印其两个属性,再调用前述两个方法。

  1. class Restaurant():
  2. def __init__(self):
  3. self.restaurant_name = 'Hamburger King'
  4. self.cuisine_type = 'Fast Food'
  5. def describe_reataurant(self):
  6. print(self.restaurant_name, self.cuisine_type)
  7. def open_restaurant(self):
  8. print('The restaurant is open.')
  9. restaurant = Restaurant()
  10. restaurant.describe_reataurant()
  11. restaurant.open_restaurant()
'
运行


9-3 用户 :创建一个名为User 的类,其中包含属性first_name 和last_name ,还有用户简介通常会存储的其他几个属性。在类User 中定义一个名为describe_user() 的方法,它打印用户信息摘要;再定义一个名为greet_user() 的方法,它向用户发出个性化的问候。创建多个表示不同用户的实例,并对每个实例都调用上述两个方法。

  1. class User():
  2. def __init__(self, first_name, last_name, message):
  3. self.first_name = first_name
  4. self.last_name = last_name
  5. self.message = message
  6. def describe_user(self):
  7. print(self.message)
  8. def greet_user(self):
  9. name = self.last_name.title() + self.first_name.title()
  10. print("hello " + name + ".")
  11. user = User('henry', 'liu', 'A good person')
  12. user.describe_user()
  13. user.greet_user()
'
运行


9-4 就餐人数 :在为完成练习9-1而编写的程序中,添加一个名为number_served 的属性,并将其默认值设置为0。根据这个类创建一个名为restaurant 的实例;打印有多少人在这家餐馆就餐过,然后修改这个值并再次打印它。
添加一个名为set_number_served() 的方法,它让你能够设置就餐人数。调用这个方法并向它传递一个值,然后再次打印这个值。

添加一个名为increment_number_served() 的方法,它让你能够将就餐人数递增。调用这个方法并向它传递一个这样的值:你认为这家餐馆每天可能接待的就餐人数。


  1. class Restaurant():
  2. def __init__(self):
  3. self.restaurant_name = 'Hamburger King'
  4. self.cuisine_type = 'Fast Food'
  5. self.number_served = 5
  6. def describe_reataurant(self):
  7. print(self.restaurant_name, self.cuisine_type)
  8. def open_restaurant(self):
  9. print('The restaurant is open.')
  10. def set_number_served(self, number):
  11. self.number_served = number
  12. def increment_number_served(self):
  13. self.number_served += 10
  14. restaurant = Restaurant()
  15. restaurant.describe_reataurant()
  16. restaurant.open_restaurant()
  17. print(restaurant.number_served)
  18. restaurant.number_served = 10
  19. print(restaurant.number_served)
  20. restaurant.set_number_served(15)
  21. print(restaurant.number_served)
  22. restaurant.increment_number_served()
  23. print(restaurant.number_served)
'
运行


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

  1. class Restaurant():
  2. def __init__(self):
  3. self.restaurant_name = 'Hamburger King'
  4. self.cuisine_type = 'Fast Food'
  5. def describe_reataurant(self):
  6. print(self.restaurant_name, self.cuisine_type)
  7. def open_restaurant(self):
  8. print('The restaurant is open.')
  9. class IceCreamStand(Restaurant):
  10. def __init__(self):
  11. super().__init__()
  12. self.flavors = ['Mango', 'Watermalen', 'Strawberry']
  13. def show_flavors(self):
  14. for flavor in self.flavors:
  15. print(flavor)
  16. iceCreamStand = IceCreamStand()
  17. iceCreamStand.show_flavors()
'
运行


9-9 电瓶升级 :在本节最后一个electric_car.py版本中,给Battery 类添加一个名为upgrade_battery() 的方法。这个方法检查电瓶容量,如果它不是85,就将它设置为85。创建一辆电瓶容量为默认值的电动汽车,调用方法get_range() ,然后对电瓶进行升级,并再次调用get_range() 。你会看到这辆汽车的续航里程增加了。

  1. class Car():
  2. """一次模拟汽车的简单尝试"""
  3. def __init__(self, make, model, year):
  4. self.make = make
  5. self.model = model
  6. self.year = year
  7. self.odometer_reading = 0
  8. def get_descriptive_name(self):
  9. long_name = str(self.year) + ' ' + self.make + ' ' + self.model
  10. return long_name.title()
  11. def read_odometer(self):
  12. print("This car has " + str(self.odometer_reading) + " miles on it.")
  13. def update_odometer(self, mileage):
  14. if mileage >= self.odometer_reading:
  15. self.odometer_reading = mileage
  16. else:
  17. print("You can't roll back an odometer!")
  18. def increment_odometer(self, miles):
  19. self.odometer_reading += miles
  20. class Battery():
  21. """一次模拟电动汽车电瓶的简单尝试"""
  22. def __init__(self, battery_size=70):
  23. """初始化电瓶的属性"""
  24. self.battery_size = battery_size
  25. def describe_battery(self):
  26. """打印一条描述电瓶容量的消息"""
  27. print("This car has a " + str(self.battery_size) + "-kWh battery.")
  28. def get_range(self):
  29. """打印一条消息,指出电瓶的续航里程"""
  30. if self.battery_size == 70:
  31. range = 240
  32. elif self.battery_size == 85:
  33. range = 270
  34. message = "This car can go approximately " + str(range)
  35. message += " miles on a full charge."
  36. print(message)
  37. def upgrade_battery(self):
  38. self.battery_size = 85
  39. class ElectricCar(Car):
  40. """电动汽车的独特之处"""
  41. def __init__(self, make, model, year):
  42. """
  43. 初始化父类的属性,再初始化电动汽车特有的属性
  44. """
  45. super().__init__(make, model, year)
  46. self.battery = Battery()
  47. my_tesla = ElectricCar('tesla', 'model s', 2016)
  48. print(my_tesla.get_descriptive_name())
  49. my_tesla.battery.describe_battery()
  50. my_tesla.battery.get_range()
  51. my_tesla.battery.upgrade_battery()
  52. my_tesla.battery.get_range()
'
运行



9-14 骰子 :模块random 包含以各种方式生成随机数的函数,其中的randint() 返回一个位于指定范围内的整数,例如,下面的代码返回一个1~6内的整数:

  1. from random import randint
  2. x = randint(1, 6)
'
运行

请创建一个Die 类,它包含一个名为sides 的属性,该属性的默认值为6。编写一个名为roll_die() 的方法,它打印位于1和骰子面数之间的随机数。创建一个6面的骰子,再掷10次。 创建一个10面的骰子和一个20面的骰子,并将它们都掷10次。

  1. from random import randint
  2. class Die():
  3. def __init__(self, sides = 6):
  4. self.sides = sides
  5. def roll_die(self):
  6. print(randint(1, self.sides))
  7. die1 = Die(6)
  8. for i in range(10):
  9. die1.roll_die()
  10. print('\n')
  11. die2 = Die(20)
  12. for i in range(10):
  13. die2.roll_die()
'
运行



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/992945
推荐阅读
相关标签
  

闽ICP备14008679号