Jan.17th,2020
#print('==================================')
#print("第九章:类")
#print('==================================')
##创建Dog类#
#class Dog():
# def __init__(self, name, age):
# # __init__ 一种约定,旨在避免Python默认方法和普通方法发生名字冲突
# self.name = name
# self.age = age
#
# def sit(self):
# print(self.name.title() + " is now sitting.")
#
# def roll_over(self):
# print(self.name.title() + " rolled over!")
##调用方法
#my_dog=Dog('willie',6) #willie 小鸡鸡
#print("My dog's name is "+my_dog.name.title()+".")
#print("My dog is"+str(my_dog.age)+" years old.")
#my_dog.sit()
#my_dog.roll_over()
#car类
#class car():
# def __init__(self,make,model,year):
# self.make=make
# self.model=model
# self.year=year
#
# def get_deseriptive_name(self):
# long_name=str(self.year)+' '+self.make+' '+self.model
# return long_name.title()
#my_new_car=car('audi','a4',2008)
#print(my_new_car.get_deseriptive_name())
#给属性指定一个默认值,出售时里程表为0
#class car():
# def __init__(self,make,model,year):
# self.make=make
# self.model=model
# self.year=year
# self.odometer_reading=0 #odometer 里程表; 计程仪
# def get_deseriptive_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")
#my_new_car=car('audi','a4',2008)
#print(my_new_car.get_deseriptive_name())
#my_new_car.read_odometer()
#修改属性的值
##1.直接修改
#class car():
# def __init__(self,make,model,year):
# self.make=make
# self.model=model
# self.year=year
# self.odometer_reading=0 #odometer 里程表; 计程仪
# def get_deseriptive_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")
#my_new_car=car('audi','a4',2008)
#print(my_new_car.get_deseriptive_name())
#my_new_car.odometer_reading=200 #***************
#my_new_car.read_odometer()
##2.通过方法修改属性的值
#class car():
# def __init__(self,make,model,year):
# self.make=make
# self.model=model
# self.year=year
# self.odometer_reading=0 #odometer 里程表; 计程仪
# def get_deseriptive_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 updata_odometer(self,mileage):
# if mileage>=self.odometer_reading:
# self.odometer_reading=mileage
# else:
# print("You can't roll back an odometer!") #roll back 逐渐减少
#my_new_car=car('audi','a4',2008)
#print(my_new_car.get_deseriptive_name())
#my_new_car.updata_odometer(200)
#my_new_car.read_odometer()
##3.通过方法对属性的值进行递增(增加特定的值)
#class car():
# def __init__(self,make,model,year):
# self.make=make
# self.model=model
# self.year=year
# self.odometer_reading=0 #odometer 里程表; 计程仪
# def get_deseriptive_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 updata_odometer(self,mileage):
# if mileage>=self.odometer_reading:
# self.odometer_reading=mileage
# else:
# print("You can't roll back an odometer!") #roll back 逐渐减少
# def incrent_odometer(self,miles):
# self.odometer_reading+=miles
#my_new_car=car('audi','a4',2008)
#print(my_new_car.get_deseriptive_name())
#my_new_car.incrent_odometer(2000)
#my_new_car.read_odometer()
#继承
#class car():
# def __init__(self,make,model,year):
# self.make=make
# self.model=model
# self.year=year
# self.odometer_reading=0 #odometer 里程表; 计程仪
# def get_deseriptive_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 updata_odometer(self,mileage):
# if mileage>=self.odometer_reading:
# self.odometer_reading=mileage
# else:
# print("You can't roll back an odometer!") #roll back 逐渐减少
# def incrent_odometer(self,miles):
# self.odometer_reading+=miles
#class ElectricCar(car):
# #父类包含在当前文件中
# def __init__(self,make,model,year):
# #初始化父类属性
# super().__init__(make,model,year)
# #super()函数,帮助父类和子类关联起来,父类也称超类(superclass)
#my_tesla=ElectricCar('tesla','model s',2016)
#print(my_tesla.get_deseriptive_name())
#给子类定义属性和方法
#class car():
# def __init__(self,make,model,year):
# self.make=make
# self.model=model
# self.year=year
# self.odometer_reading=0 #odometer 里程表; 计程仪
# def get_deseriptive_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 updata_odometer(self,mileage):
# if mileage>=self.odometer_reading:
# self.odometer_reading=mileage
# else:
# print("You can't roll back an odometer!") #roll back 逐渐减少
# def incrent_odometer(self,miles):
# self.odometer_reading+=miles
#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.")
#my_tesla=ElectricCar('tesla','model s',2016)
#print(my_tesla.get_deseriptive_name())
#my_tesla.describe_battery()
#重写父类的方法
#class car():
# def __init__(self,make,model,year):
# self.make=make
# self.model=model
# self.year=year
# self.odometer_reading=0 #odometer 里程表; 计程仪
# def get_deseriptive_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 updata_odometer(self,mileage):
# if mileage>=self.odometer_reading:
# self.odometer_reading=mileage
# else:
# print("You can't roll back an odometer!") #roll back 逐渐减少
# def incrent_odometer(self,miles):
# self.odometer_reading+=miles
#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.")
# 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_deseriptive_name())
#my_tesla.describe_battery()
#将实例用作属性
#class Car():
# def __init__(self,make,model,year):
# self.make=make
# self.model=model
# self.year=year
# self.odometer_reading=0 #odometer 里程表; 计程仪
# def get_deseriptive_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 updata_odometer(self,mileage):
# if mileage>=self.odometer_reading:
# self.odometer_reading=mileage
# else:
# print("You can't roll back an odometer!") #roll back 逐渐减少
# def incrent_odometer(self,miles):
# self.odometer_reading+=miles
#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 #电瓶容量为70kwh,续航里程设置为240英里
# elif self.battery_size==85:
# range=270 #电瓶容量为85kwh,续航里程设置为270英里
# message="This car can go approximately "+str(range)
# message+=" mile on a full charge."
# print(message)
#class ElectricCar(Car):
# """电动车的独特之处"""
# def __init__(self,make,model,year):
# super().__init__(make,model,year)
# self.battery=Battery()
#my_tesla=ElectricCar('tesla','model',2008)
#print(my_tesla.get_deseriptive_name())
#my_tesla.battery.describe_battery()
#my_tesla.battery.get_range()
#模拟实物
"""现实世界的建模方法并没有对错之分。
有些方法的效率更高,但是要找出效率更高的表示法,需要经过一定的实践
只要代码想你希望的那样运行,就说明你做得很好!
即使你发现自己不得不多次尝试使用不同的方法来重写类,也不必气馁
要编写出高效、准确的代码,都得经过这样的过程"""