class house_item:
    def __init__(self,name,area):

        self.name=name
        self.area=area
    def __str__(self):
        return "%s,\n面积是%.2f" % (self.name,self.area)


class house:
    def __init__(self,house_type,house_area):
        self.type=house_type
        self.area=house_area
        self.free_area=house_area
        self.itemlist=[]
    def __str__(self):
        return ("房子类型:%s\n房子面积:%.2f\n房子剩余面积:%.2f\n房子家具列表:%s\n"
                %(self.type,self.area,self.free_area,self.itemlist))

    def additem(self,item):
         print("要添加的家具是:%s"%item)
         if item.area >self.free_area:
             return "家具面积大,不能添加"
         self.free_area -=item.area
         self.itemlist.append(item.name)


bed=house_item("床",4)
myhome=house("两室一厅",60)
myhome.additem(bed)
print(myhome)


输出:

要添加的家具是:床,
面积是4.00
房子类型:两室一厅
房子面积:60.00
房子剩余面积:56.00
房子家具列表:['床']

 

简单说明一下学习过程吧,一开始不明白为什么会在myhome 对象中可以通过一个bed,进行传两个值

后来发现是通过myhome对象调用了bed对象(bed对象中有两个参数),通过item.area进行调用,

我的理解是如下图:

python类调用另一个类中某个变量 python调用另一个类的变量_python

有写的不对的地方请大神提出,指点,共同交流!分享记录下,给新人指路吧!