python练习9-6冰淇淋小店

练习9-6冰淇淋小店

#练习9.6冰淇淋小店

class Restaurant:
	def __init__(self,restaurant_name,cuisine_type):
		self.n=restaurant_name
		self.ct=cuisine_type
		self.num=0#今天人数
		self.total=2000#开店以来总人数
		
	def describe_restaurant(self):
		print(f"name is {self.n}.")
		print(f"cuisine type {self.ct}.")
		
	def open_restaurant(self):
		print("The restaurant is open.")
		
	def number_served(self):#总人数
		print("there had been "+str(self.total)+" people have dinner here.")
	
	def increment(self,number):#增加量
		self.total+=number
			
	def set_number_served(self):#一天的人数
		print("today the restaurant has served "+str(self.num)+" people.")
		
class IceCream(Restaurant):
	def __init__(self,restaurant_name,cuisine_type,flavors):
		super().__init__(restaurant_name,cuisine_type)
		self.flavors=flavors
		
	def printname(self):
		print(self.n,self.ct,self.flavors)
		
x=IceCream('zhangsan','iceream',['apple','pear','mango','liche'])
x.printname()

练习9-7管理员

#练习9-7管理员
class User:
	def __init__(self,first_name,last_name,age):
		self.a=first_name
		self.b=last_name
		self.c=age
	def describe_user(self):
		print(f"user name: {self.a} {self.b},age:{self.c}.")
		
	def greet_user(self):
		print(f"Hello,{self.a}.")
		


class Admin(User):
	def __init__(self,first_name,last_name,age,privileges):#子类的属性初始化
		super().__init__(first_name,last_name,age)#继承父类的属性
		self.privileges=privileges
		print('name:',self.a,self.b,'age:',str(self.c))
		
	def show_privileges(self):
		print('privileges are:',self.privileges)
		
x=Admin('zhang','san',19,['ad post','delete post','ban user'])
x.show_privileges()

练习9-8权限

#练习9-8权限
class User:
	def __init__(self,first_name,last_name,age):
		self.a=first_name
		self.b=last_name
		self.c=age
	def describe_user(self):
		print(f"user name: {self.a} {self.b},age:{self.c}.")
		
	def greet_user(self):
		print(f"Hello,{self.a}.")
		

class Privileges:
	def __init__(self):
		self.privileges=['add post','delete post','ban user']
		
	def show_privileges(self):
		print('privileges are:',self.privileges) 
	


class Admin(User):
	def __init__(self,first_name,last_name,age):
		super().__init__(first_name,last_name,age)
		self.privileges=Privileges()#添加一个privileges的属性,向它传递privileges类创建的实例
		                             #注意,此处容易漏写
		print('name:',self.a,self.b,'age:',str(self.c))
		
	
		
x=Admin('zhang','san',19)
x.privileges.show_privileges()

9-9电瓶升级

class Car:
	def __init__(self,make,model,year):
		self.make=make
		self.model=model
		self.year=year
		self.odometer_reading=0
	
	def get_descriptive_name(self):
		longname=f"{self.year} {self.make} {self.model}"
		return longname.title()
		
	def read_odometer(self):
		print(f"this car has "+str(self.odometer_reading)+" miles on it.")
		
	def update_odometer(self,mileage):
		if mileage>self.odometer_reading:
			self.odometer_reading=mileage
		else:
			print("you can't roll back an odometer.")
		
	def increment_odometer(self,mileage):
		self.odometer_reading+=mileage

class Battery():
	def __init__(self,battery_size=70):
		self.battery_size=battery_size
		
	def describe_battery(self):
		print("This car has a "+str(self.battery_size)+"-kwh battery.")
		
	def get_range(self):
		if self.battery_size==70:
			range=240
		elif self.battery_size==85:
			range=270
			
		message="This car can go approximately "+str(range)
		message+=" miles on a full charge."
		print(message)
		
	def upgrade_battery(self):
		if self.battery_size!=85:
			self.battery_size=85
		
		
class ElectricCar(Car):
	def __init__(self,make,model,year):
		super().__init__(make,model,year)
		self.battery=Battery()
		
	def fill_gas_tank(self):#重写父类的方法,方法要同名,重新定义即可
		print("This car doesn't need a gas tank!")
		
		
my_tesla=ElectricCar('tesla','model s',2016)
print(my_tesla.get_descriptive_name()) 
my_tesla.battery.describe_battery()
my_tesla.battery.get_range()
my_tesla.battery.upgrade_battery()#进行电池升级
my_tesla.battery.describe_battery()#再次描述电池
my_tesla.battery.get_range()#获得里程
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值