python//Jan.17th,2020//类

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()

#模拟实物
"""现实世界的建模方法并没有对错之分。
有些方法的效率更高,但是要找出效率更高的表示法,需要经过一定的实践
只要代码想你希望的那样运行,就说明你做得很好!
即使你发现自己不得不多次尝试使用不同的方法来重写类,也不必气馁
要编写出高效、准确的代码,都得经过这样的过程"""



发布了38 篇原创文章 · 获赞 2 · 访问量 1170

猜你喜欢

转载自blog.csdn.net/weixin_44811068/article/details/104023595