python: 类嵌套的练习:房间里放桌椅

#!/usr/bin/python
#!coding:utf-8
import sys
#定义一个类:房间,房间包含了属性和行为
class Room:
	def __init__(self):
		self.location = '阜成路西一段'
		self.area = 180
		self.containList = []
#值得注意的是当容纳哪个物品时就把那个物品的MSG叠加到这个总MSG消息里来(msg += str(temp))
	def __str__(self):
		k = len(self.containList)
		msg = '你房间的地理位置是:' + self.location  +', 可用面积有'+str(self.area)+'平方米。'
		if k != 0:
			for temp in self.containList:
				msg += str(temp)
		return msg
	def containItem(self,Item):
		if self.area > Item.area:
			self.containList.append(Item)
			k = len(self.containList)
			for temp in self.containList:
				self.area -= temp.area
		else:
			print('可用面积不够添加新的物件,添加失败')
		return self.area
	
#定义一个类:床,床包含了属性和行为
class Bed:
	def __init__(self,area,high,color):
		self.area = area
		self.high = high
		self.color = color
	def __str__(self):
		msg = '席梦思床的面积' + str(self.area)  +', 高度'+str(self.high)+'米'+', 颜色'+self.color + '!!!  '
		return msg


#定义一个类:书桌,书桌包含了属性和行为
class Desk:
	def __init__(self):
		self.area = 0.8
		self.high = 1
		self.form = 'round'
	def __str__(self):
		msg = '绿桌的面积' + str(self.area)  +', 高度'+str(self.high)+'米'+', 桌面的形状'+self.form
		return msg
#生产具体对象
print('*'*35)
myHome = Room()
print(myHome)
xiMengSi = Bed(193,0.5,'blue')
print(xiMengSi)
greenDesk = Desk()
print(greenDesk)
print(greenDesk.high)
print('*'*35)
print('放一张席梦思床之后的房间信息')
myHome.containItem(xiMengSi)
print(myHome.containList)
print(myHome)
print('*'*35)
print('再放一张绿桌之后的房间信息')
myHome.containItem(greenDesk)
#print([i for i in myHome.containList])
print('输出一个元组的内存地址')
print(myHome.containList)
print(myHome)
print('*'*35)
print('席梦思和圆桌的信息没有发生变化')
print(xiMengSi)
print(greenDesk)

输出如下:


你房间的地理位置是:阜成路西一段, 可用面积有180平方米。
席梦思床的面积193, 高度0.5米, 颜色blue!!!
绿桌的面积0.8, 高度1米, 桌面的形状round
1


放一张席梦思床之后的房间信息
可用面积不够添加新的物件,添加失败
[]
你房间的地理位置是:阜成路西一段, 可用面积有180平方米。


再放一张绿桌之后的房间信息
输出一个元组的内存地址
[<main.Desk object at 0x0000000002367FD0>]
你房间的地理位置是:阜成路西一段, 可用面积有179.2平方米。绿桌的面积0.8, 高度1米, 桌面的形状round


席梦思和圆桌的信息没有发生变化
席梦思床的面积193, 高度0.5米, 颜色blue!!!
绿桌的面积0.8, 高度1米, 桌面的形状round

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值