第9章:类

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 '''
类的属性被其中的一个方法调用后传参数改变,整个类的属性就会跟着变了,类的好处就是用来做工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值