Python类的使用——家与家具例子(两个类有交互)

  • Post author:
  • Post category:python


class Home:
    def __init__(self,area):
        self.area=area
        self.items=[]
    def __str__(self):
        x="家当前的可用面积为:{}\n".format(self.area)
        x+="目前有床:"
        #----------
        #本应考虑到使用x+=",".join(self.items),但是列表添加的是对象,在遍历的时候join方法不起作用,故采用逐个遍历的笨方法
        for item in self.items:
            x+=item.name+","
        x=x[:-1]
        #----------
        return x
    def additem(self,item):
        self.items.append(item)

class Bed:
    def __init__(self,name,area):
        self.name=name
        self.area=area
    def __str__(self):
        x="{}床的面积为{}".format(self.name,self.area)
        return x

home=Home(128)
print(home)
bed1=Bed("席木思",4)
print(bed1)
home.additem(bed1)
print(home)
bed2=Bed("硬板床",3)
print(bed2)
home.additem(bed2)
print(home)

#遍历列表中的元素使之 以字符串带符号隔离 的形式打印出来
#方法1:
# print(",".join(list))

#方法2:
# for i in list:
#     x+=i+","
# x=x[:-1]
# print(x)
#列表存储的是地址,通过i[0]可以操作

class Home:
    def __init__(self,area):
        self.area=area
        self.items=[]
    def __str__(self):
        x="家当前的可用面积为:{}\n".format(self.area)
        if len(self.items)!=0:
            x+="目前有床:"
            #----------
            #本应考虑到使用x+=",".join(self.items),但是列表添加的是对象,在遍历的时候join方法不起作用,故采用逐个遍历的笨方法
            for item in self.items:
                x+=item.name+","
            x=x[:-1]
        #----------
        return x
    def additem(self,item):
        if self.area>item.area:
            self.items.append(item)
            self.area-=item.area
        else:
            print("家空间不足")

class Bed:
    def __init__(self,name,area):
        self.name=name
        self.area=area
    def __str__(self):
        x="{}床的面积为{}".format(self.name,self.area)
        return x

home=Home(128)
bed1=Bed("席木思",4)
home.additem(bed1)
bed2=Bed("硬板床",3)
home.additem(bed2)
print(home)



版权声明:本文为Fever_wolf原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。