第9章 类

第9章 类,
首字母大写的名称为类,小写为实例
句点表示法
可以创建多个实例
__init__函数,注意下划线是每边两个
修改属性值:
直接修改属性值
通过方法修改,写在类里
通过方法对属性的值进行递增

继承
子类继承父类的所有属性和方法,同时还可以定义自己的属性和方法。
创建子类时,父类必须包含在当前文件下,且位于子类前面,
super函数帮助父类和子类关联起来
给子类定义属性和方法,添加新的属性时注意缩进到def__init__下
重写父类方法,
将实例用作属性,注意理解,增加一个属性,用一个类的实例来表示,可以是程序更有条理,当需要增加其他描述时更加方便。
导入类
在一个模块中导入另一个模块,将用到的类,全部声明导入,可能你导入的一个类需要另一个模块支持,此时就要导入两个模块。
OrderedDict(),有顺序
类,首字母大写连接,不用下划线

源代码

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 update_odometer(self,mileage):
		self.odometer_reading = mileage
	
	def increment_odometer(self,miles):
		self.odometer_reading += miles
	
	def read_odometer(self):
		print('this car has '+str(self.odometer_reading)+' miles on it')
		
my_new_car = Car('audi','A4',2016)
print(my_new_car.get_descriptive_name())
my_new_car.read_odometer()

#修改属性值
my_new_car.odometer_reading = 23
my_new_car.read_odometer()

my_new_car.update_odometer(34)
my_new_car.read_odometer()

my_new_car.increment_odometer(34)
my_new_car.read_odometer()


#将实例用作属性
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')
	


#继承
class ElectricCar(Car):
	def __init__(self,make,model,year):
		super().__init__(make,model,year)
#给子类定义属性和方法
		#self.battery_size = 70
		
	#def describe_battery(self):
	#	print('this car has a '+str(self.battery_size)+'-kwh battery')
	
#将实例用作属性		
		self.battery = Battery()
	
my_tesla = ElectricCar('tesla','models',2016)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
#my_tesla.describe_battery()

	



posted @ 2019-08-01 20:17  Jayzou11223  阅读(39)  评论(0)    收藏  举报