第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()
信心最重要