python---面向对象实例(烤地瓜、搬家具)

目录

实例1:烤地瓜

实例2:搬家具 


实例1:烤地瓜

逻辑思路:

  • 先定义类,其中先利用def __init__(self)函数设置初始化属性即被烤的时间、烤地瓜的状态和需要准备的调料,再定义cook函数通过烤地瓜的时间来判断烤地瓜的状态,继续定义add_condiments函数用来追加需要的调料,最后利用def __str__(self)函数解释对类或对象状态的说明。
  •  创建对象并调用对应的实例方法,输出烤地瓜的结果
# 1. 定义类:初始化属性、被烤和添加调料的方法、显示对象信息的str
#定义类
class SweetPotato():
    def __init__(self):
        self.cook_time=0#烤地瓜被烤的时间
        self.cook_state='生的'#烤地瓜的状态
        self.condiments=[]#需要准备的调料列表

    def cook(self,time):
        #烤地瓜方法
        # 1. 先计算地瓜整体烤过的时间
        self.cook_time+=time#计算烤地瓜的整体时间
        # 2. 用整体烤过的时间再判断地瓜的状态
        if 0<=self.cook_time<3:
            self.cook_state='生的'
        elif 3<=self.cook_time<5:
            self.cook_state='半生不熟'
        elif 5<=self.cook_time<8:
            self.cook_state='熟了'
        elif self.cook_time>=8:
            self.cook_state='烤糊了'

    def add_condiments(self,condiment):
        self.condiments.append(condiment)#添加烤地瓜调料

    def __str__(self):
        return f'这个地瓜的被烤过的时间是{self.cook_time}, 状态是{self.cook_state}, 调料有{self.condiments}'

# 2. 创建对象并调用对应的实例方法
digua=SweetPotato()
#最初的状态
print(digua)
print()
#经过两分钟后的状态
digua.cook(2)
digua.add_condiments('孜然')
print(digua)
print()
#再经过五分钟后的状态
digua.cook(5)
digua.add_condiments('酱料')
print(digua)

运行结果:


实例2:搬家具 

逻辑思路:

  • 先定义类。

(1)首先定义家具类,其中利用def __init__(self)函数设置初始化属性即家具名称和家具占地⾯积(2)然后定义房⼦类,其中先利用def __init__(self)函数设置初始化属性即实例属性包括房⼦地理位置、房⼦占地⾯积、房⼦剩余⾯积和房⼦内家具列表;再利用def __str__(self)函数解释对类或对象状态的说明,最后定义add_condiments函数用来追加容纳的家具。

  • 创建对象并调用对应的实例方法,输出添加家具的结果
#搬家具
class Furniture():
    def __init__(self,name,area):
        #家居名称
        self.name=name
        #家具占地面积
        self.area=area

class Home():
    def __init__(self,address,area):
        #四个实例属性只有两个形参,因为剩余面积为area,家具列表为空
        #地理位置
        self.address=address
        #房屋面积
        self.area=area
        #剩余面积
        self.free_area=area
        #家具列表
        self.furniture=[]

    def __str__(self):
        return f'房子地理位置在{self.address}, 房屋面积是{self.area}, 剩余面积{self.free_area}, 家具有{self.furniture}'
    def add_furniture(self,item):
        #容纳家具
        # 如果 家具占地面积 <= 房子剩余面积:可以搬入(家具列表添加家具名字数据并房子剩余面积更新:
        # 房屋剩余面积 - 该家具的占地面积
        # 否则:提示用户家具太大,剩余面积不足,无法容纳)
        if self.free_area>=item.area:#占地面积足够大时添加可容纳的家具
            self.furniture.append(item.name)
            self.free_area-=item.area#剩余面积

        else:#否则占地面积小,不能容纳该家具
            print('家具太大,剩余家居面积不足')

bed=Furniture('双人床',6)#bed实参引用
sofa=Furniture('沙发',10)
pool=Furniture('游泳池',1000)

jia1=Home('北京',1000)

print(jia1)
print()
#添加双人床
jia1.add_furniture(bed)
print(jia1)
print()
#再添加沙发
jia1.add_furniture(sofa)
print(jia1)
print()
#再添加游泳池
jia1.add_furniture(pool)
print(jia1)

 运行结果:


在这两个实例中,其中

  • 函数def __str__(self)作用:解释说明,对类的说明或对象状态的说明。
  • 函数def __init__(self)作用:定义init方法设置初始化属性,方便访问调用。

本次展示的是面向对象烤地瓜和搬家具的两个实例,了解面向对象的基础知识。如有错误,请多指教。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值