阅读背景:

第9章:类_Roe_D的博客

来源:互联网 
from collections import OrderedDict  #这是从标准库里面导入的函数,用于记录输入的值的顺寻
f = OrderedDict()#把他看作空字典
f['libai']='c'
f['dufu']='python'
for k,v in f.items():
    print(k+' '+v)

#类是个强大的工具箱,注意大写括号,self
#对象有具体化和抽象化之分,具备状态(数据)和操作(功能),而类是抽象化的对象,类的实例就是具体的对象
#所有的对象都拥有和类一样的结构,但是对象里储存的数据都是独立的互不干扰的
class Car():
    def _init_(self,make,model,year):
        self.make = make  #厂商
        self.model = model#模型
        self.year = year  #年
        self.licheng = 0  #里程

    def get_name(self):#信息
        long_name = (self.make+''+self.model+''+str(self.year))
        return long_name#注意return

    def upade_o(self,xincheng):#里程111
        if xincheng > self.licheng:
            self.lingcheng = xincheng
        else:
            print('no roll back an odometer')
    def increas (self,zhengjia):#里程222
            self.licheng += zhengjia 

    def read_licheng(self):#自带输出,里程333
        print(self.licheng)#注意print
        

class Battery():
    def _init_(self,size=7):#给size默认值
        self.size = size

    def read_battery(self):
        print('this car has a'+str(seif.size)+'-kwh battery.')


class Ecar(Car):#他继承了Car,导入了Battery,具备了两个类的属性和方法
    def _init_(self,make,model,year):#初始化父类参数
        super()._init_(make,model,year)#将父类属性初始化
        self.battery = Battery()#将实例当作属性,将类Battery返回的实例存进属性,类可以直接赋值

        
    


my_tesla = Ecar('benci','a4',2016)

print(my_tesla.get_name)#我要通过Ecar访问Car中的一个方法
my_tesla.self_battery.read_battery()#我要通过Ecar访问Battery中的read_battery方法,注意这里的访问self.batter?书里写battery
#,【问题解决:是battery不用self】,是跟访问方法一个样
#my_tesla.battery,这个是访问属性的格式跟访问方法一样

#修改属性的值3种
#111 ,直接调用赋值 如:self.licheng = 23 
#再直接调用它出来     mycar.licheng=24,他就变成24了
'''222 ,通过新建方法修改 如:def upade_o(self,xincheng):这个方法里面放着licheng赋值
      然后调用给他传参 就行:mycar.upde_o(23),
再调用输出方法mycar.read_licheng'''

#给里程新加功能
#里程赋值方法改成:def updat_o(self,xincheng):
if xincheng > self.licheng:
    self.lingcheng = xincheng
else:
    print('no roll back an odometer')
#333 ,通过方法对属性的值增加
#再新增一功能:继续行驶增加的里程
def increas (self,zhengjia):
    self.licheng +=zhengjia '''
类的属性被其中的一个方法调用后传参数改变,整个类的属性就会跟着变了,类的好处就是用来做工具

from collections import OrderedDict  #这是



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: