python类中实例用作属性_Python Day111(类:将实例用作属性)

使用代码模拟实物时,你可能会发现自己给类添加的细节越来越多:属性和方法清单以及文件都越来越长。在这种情况下,可能需要将类的一部分作为一个独立的类提取出来。你可以将大型类拆分成多个协同工作的小类。这里把 狗狗类做了一个封装。全部狗狗信息放到doginfo里。

作业图

再如,不断给ElectricCar类添加细节时,我们会发现其中包含很多专门针对汽车电瓶的属性和方法。在这种情况下,我们可将这些属性和方法提取出来,放到另一个名为Battey的类中,并将一个Battery实例用作ElectricCar类的一个属性:

作业图

代码:

# Hello World program in Python

# -- coding: utf-8 --

class Car(object):

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 read_odometer(self):

print "This car has "+str(self.odometer_reading)+" miles on it."

def update_odometer(self,mileage):

if mileage>=self.odometer_reading:

self.odometer_reading=mileage

else:

print "You can't roll back an 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(ElectricCar,self).__init__(make,model,year)

self.battery=Battery()

my_tesla=ElectricCar('tesla','model s',2016)

print(my_tesla.get_descriptive_name())

my_tesla.battery.describe_battery()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值