前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python--从入门到实践--chapter 9 类

python--从入门到实践--chapter 9 类

作者头像
Michael阿明
发布2021-02-20 10:35:28
3310
发布2021-02-20 10:35:28
举报
文章被收录于专栏:Michael阿明学习之路

类的定义格式:

代码语言:javascript
复制
class Name(Father_class):
		def __init__(self, para, ...):
				self.para = x
		def __init__(self, para, ...):
				super().__init__(para, ...)	#调用父类的构造函数
代码语言:javascript
复制
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):
		long_name = str(self.year) + ' ' + self.make + ' ' + self.model
		return long_name.title()
	def read_odometer(self):
		print('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 not roll back an odometer!')
	def increment_odometer(self, miles):
		if miles < 0:
			print('You can cheat me! driving miles < 0')
		else:
			print('driving this car ' + str(miles) + 'miles')
			self.odometer_reading += miles
	def fill_gas_tank(self):
		print('This car need fill gas !')

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 upgrade_battery(self):
		if self.battery_size != 85:
			self.battery_size = 85
			print("battery update successfully !")
	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)

class ElectricCar(Car):		#类的继承
	def __init__(self, make, model, year):
		super().__init__(make, model, year)	#调用父类初始化函数初始化父类成员
		self.battery = Battery()			#新的成员,一个Battery对象
	def fill_gas_tank(self):
		# super().fill_gas_tank()
		print('This car doesn\'t need a gas tank!')

my_tesla = ElectricCar('tesla','model s', 2019)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
my_tesla.fill_gas_tank()
my_tesla.battery.get_range()
my_tesla.battery.upgrade_battery()
my_tesla.battery.get_range()
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/04/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档