'''
实例是确定一个房子 放入家具 显示房子的户型家居的名字 房子的面积和放入家具后剩余的面积
先定义家具类 在定义房子类
房子属性:户型 面积
家具属性:名字 占地面积
'''
class HouseItem:
#定义家具类
def __init__(self,name,area): # 初始化名字和面积
self.name = name
self.area = area
def __str__(self):
return '{}占地{:2f}'.format(self.name,self.area)
class House:
# 定义房子类
def __init__(self,house_type,area):
self.house_type = house_type
self.area = area
self.free_area = area # 定义空余面积
self.item_list = [] #储存家具列表
def __str__(self):
return '户型{}\n总面积{}剩余{}\n家具{}'.format(self.house_type,self.area,self.free_area,self.item_list)
def add_item(self,item): # item家具类
print('要添加{}'.format(item))
if item.area > self.free_area:#判断家具面积与房子剩余面积大小
print('家具面积太大,无法添加')
return
self.item_list.append(item.name)
self.free_area -= item.area
def one_none(self): #
self.free_area = 60
bed = HouseItem('席梦思',4)#定义几个家具对象 用家具类
chest = HouseItem('衣柜',2)
table = HouseItem('餐桌',1.5)
hahaha = HouseItem('电脑桌',60)
myhome = House('两室一厅',60)#定义一个房子对象 用房子类
myhome.add_item(bed)#对房子进行一些操作 操作方法是房子类里面定义的
myhome.add_item(chest)
myhome.add_item(table)
myhome.add_item(hahaha)
print(myhome)
print(myhome.free_area)
myhome.one_none()
'''可以把类中的函数当成自己设计的函数 只有在引用的时候才调用 而且只对由这个类所创建的对象使用除了init 和str
#是赋给对象的时候就执行的 其他的函数在创建对象的时候并不执行
-------------------------------------hahaha.add_item(bed)是错误的 应为hahaha是家具类不能用房子类里面的函数-----
myhome.__init__()可以更改对象的初始属性值 但是这跟重新创建一个新的对象一样感觉'''
print(myhome.free_area)
类的学习之家具和房子例子
最新推荐文章于 2024-05-21 15:39:16 发布