python-面向对象的一些简单操作

#1)房子有户型,总面积和家具名称列表
#新房子没有任何的家具
#2)家具有名字和占地面积,其中
#床:占4平米
#衣柜:占2平面
#餐桌:占1.5平米
#3)将以上三件家具添加到房子中
#4)打印房子时,要求输出: 户型,总面积,剩余面积,家具名称列表

class house():
    def __init__(self, house_type, area):
        self.house_type = house_type
        self.area = area
        self.free_area = area
        self.jialu_list=[]
    def add_jiaju(self, jiaju2):
        if jiaju2.use_area > self.free_area:
            print('%s家具过大,无法摆放'%(jiaju2.name))  # 格式要一致
        self.jialu_list.append(jiaju2.name)
        self.free_area -= jiaju2.use_area
    def __str__(self):
            return f'户型{self.house_type}总面积:{self.area},剩余面积:{self.free_area},家具名称列表:{self.jialu_list}'
class jiaju():
        def __init__(self, name, use_area):
            self.name = name
            self.use_area = use_area
        def __str__(self):
            return f'{self.name}家具占地面积为{self.use_area}平方米'
chuang = jiaju('chuang', 4)
print(chuang)
yigui = jiaju('yigui', 2)
print(yigui)
canzhuo = jiaju('canzhuo', 1.5)
print(canzhuo)
myhouse = house('四室两厅', 128)
myhouse.add_jiaju(chuang)
myhouse.add_jiaju(yigui)
myhouse.add_jiaju(canzhuo)
print(myhouse)
#二、2、需求:
#1)士兵瑞恩有一把AK47
#2)士兵可以开火(士兵开火扣动的是扳机)
#3)枪能够发射子弹(把子弹发射出去)
#4)枪能够装填子弹 - -增加子弹的数量
class shibing:
    def __init__(self,name,gunobject):
        self.name=name
        self.gun=gunobject
    def kaihuo(self):
        if self.gun.name==[]:
            print(f'{self.name}没有枪支')
            return
        print(f'{self.name}拿枪,扣动扳机')
        self.gun.zhuangtianzidan(50)
        self.gun.fashe()
class gun:
    def __init__(self,name):
        self.name=name
        self.zidannum=0
    def fashe(self):
        if self.zidannum<=0:
            print('没有子弹,无法发射')
            return
        self.zidannum-=1
        print(f'{self.name}子弹发射成功')
    def zhuangtianzidan(self,num):
        self.zidannum += num

AK47 = gun('AK47')
ruien = shibing('ruien', AK47)
ruien.kaihuo()
#三、编写程序实现乐手弹奏乐器。乐手可以弹奏不同的乐器从而发出不同的声音。可以弹奏的乐器包括二胡、钢琴和琵琶。
#实现思路及关键代码:
#1)定义乐器类Instrument,包括makeSound()
#方法,此方法中乐器声音:"乐器发出美妙的声音!"
#2)定义乐器类的子类:二胡Erhu、钢琴Piano和小提琴Violin
#二胡Erhu声音:"二胡拉响人生"
#钢琴Piano声音:"钢琴美妙无比"
#小提琴Violin声音:"小提琴来啦"
#3)用main类,多态的方式对不同乐器进行切换
class Instrument:            #父类
    def makeSound(self):
        print('乐器发出美妙的声音')
class erhu(Instrument):         #子类
    def makeSound(self):
        print('二胡拉响人生')
class piano(Instrument):           #子类
    def makeSound(self):
        print('钢琴美妙无比')
class violin(Instrument):            #子类
    def makeSound(self):
        print('小提琴来了')

def a(self):             #不同的子类调用这个相同的方法
    self.makeSound()

if __name__=='__main__':
    e=erhu();
    p=piano();
    v=violin();
    #a=a(e);
    #a = a(p);
    a = a(v);
原文地址:https://www.cnblogs.com/cy-zjs/p/13372578.html