• 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);
  • 相关阅读:
    php 三元运算符简洁用法
    Linux 获取网卡信息
    《构建之法》读后感
    毫秒数据字符串转换为DateTime
    POST请求——HttpWebRequest
    多个不同类对象传输思路
    WCF 大文件传输配置
    WCF配置文件详解
    C# 元组、匿名对象、ref&out
    C#控制台关闭之前做一些操作
  • 原文地址:https://www.cnblogs.com/cy-zjs/p/13372578.html
Copyright © 2020-2023  润新知