实例一:摆放家具
需求如下:
家具(HouseItem)有名字和占地面,其中
席梦思(bed) 占地 4 平米
衣柜(chest) 占地 2 平米
餐桌(table) 占地 1.5 平米
打印出家具名称呵占地面积
分析:从以上需求我们可以看出 类是家具(HouseItem)
该类有两个属性:家具name和占地面积area
可以通过__init__()方法设置属性的初始值
可以通过__str__()方法打印需要的信息
所以分析结果见下表:
代码如下:
class Houseitem:
def __init__(self,name,aera):
self.name = name
self.area = area
def __str__(self):
return "[%s] 占地面积%.2f" %(self.name,self.area)
bed = Houseitem("席梦思",4) #bed对象实例化,使这个对象具体化,具有两个属性,分别是name属性叫席梦思,area属性是4
print(bed) #打印bed这个对象,输出—__str__()中传入的内容
chest = Houseitem("衣柜",2) #chest对象实例化,使这个对象具体化,具有两个属性,分别是name属性叫衣柜,area属性是2
print(chest)#打印chest这个对象,输出—__str__()中传入的内容
table = Houseitem("table",1.5)#table对象实例化,使这个对象具体化,具有两个属性,分别是name属性叫书桌,area属性是1.5
print(table)#打印table这个对象,输出—__str__()中传入的内容
#输出结果
#[席梦思] 占地面积4.00
#[衣柜] 占地面积2.00
#[书桌] 占地面积1.50
实例二:将家具添加到房子中
需求如下:
将实例一中生成的家具添加到房子中,
打印房子时,要求输出:户型、总面积、剩余面积、家具名称列表
分析:
家具已经通过上一个Houseitem()类已经实现
房子需要通过一个房子类生成
需要一个方法将家具添加到房子中
需要四个属性来表示房子的户型、总面积、剩余面积、家具名称列表
属性 1. 房子的户型,需要外部输入实际参数,所以需要定义一个形参来给房子的户型传入值
属性 2. 总面积,需要外部输入实际参数,所以需要定义一个形参来给总面积传入值
属性 3. 剩余面积,剩余面积是通过计算得来,仅需要一个表示剩余面积的属性代表剩余面积的值,无形参
属性 4.家具名称列表,家具名称列表是通过调用方法来实现列表的添加,所以仅需要一个属性来表示列表,无形参
str()方法打印出户型、总面积、剩余面积、家具名称列表
init()方法输入房子的户型 和总面积
__add_item()方法来实现将家具添加到房子中
所以分析结果见下表:
代码如下
calss House:
def __init__(self,house_type,area):
self.house_type = house_type
self.area = area
self.free_area = free_area #定义一个剩余面积属性
self.item_list = [] #空列表用来存放放入房子这个对象中的家具
def __str__(self):
return (" 房子户型:%s \n 总面积: %.2f \n 剩余面积:%.2f \n 家具名称列表:%s \n"
%(self.house_type,self.area,
self.free_area,self_item_list))
def add_item(self,item):
print("要添加%s",item)
if item.area > self.area:
print("%s面积太大,无法添加"%item.name)
return
self.item_list.append(item.name)
self.free_area -=item.area
bed = Houseitem("席梦思",4)
print(bed)
#创建房子对象
my_home = House("两室一厅",60)
my_home.add_item(bed)
my_home.add_item(chest)
my_home.add_item(table)
print(my_home)
小结
创建了一个 房子类,使用到 init 和 str 两个内置方法
准备了一个 add_item 方法 准备添加家具
使用 房子类 创建了 一个房子对象
让 房子对象 调用了三次 add_item 方法,将 三件家具 以实参传递到 add_item 内部
本文参考链接
如有侵权,联系删除