Python学习:类与对象的基础实现,包括构造函数,打印类说明__str__()等

文章通过Python代码展示了如何创建并使用`Person`和`House`类,包括类的初始化、属性定义、方法实现以及对象的交互。`Person`类有`run`和`eat`方法,影响体重属性。`HouseItem`和`House`类则模拟了家具和房屋的占用面积计算,`House`类可以添加`HouseItem`,但需考虑剩余空间。
摘要由CSDN通过智能技术生成
class Person:
    def __init__(self, name, weight):
        # 属性,在构造函数中定义与初始化
        self.name = name
        self.weight = weight

    def __str__(self):
        return "我的名字是%s我的体重是%.2f" % (self.name, self.weight)

    # 方法
    def run(self):
        print("%s爱跑步" % self.name)
        self.weight -= 0.5

    def eat(self):
        print("%s是吃货" % self.name)
        self.weight += 0.5


xiaoming = Person("小明", 75)

xiaoming.run()
xiaoming.eat()
print(xiaoming)

xiaomei = Person("小美", 50)
xiaomei.run()
xiaomei.eat()
print(xiaomei)
#####################################
class HouseItem:
    def __init__(self,name,area):
        self.name=name
        self.area=area
    def __str__(self):# 用于print(对象)时输出数据
        return "[%s]占地 %.2f平米"%(self.name,self.area)

class House:
    def __init__(self,house_type,area):
        self.house_type=house_type
        self.area=area

        self.free_area=area
        self.item_list=[]
    def __str__(self):
        return ("户型 %s \n总面积 %.2f[剩余 %.2f]\n家具 %s"
                %(self.house_type,self.area,
                  self.free_area,self.item_list))
    def add_item(self,item):
        if item.area>self.free_area:
            print("%s 面积过大,无法添加" % item.name)
            return
        self.item_list.append(item.name)
        self.free_area-=item.area


        print("要添加 %s "% item)

bed=HouseItem("席梦思",40)
chest=HouseItem("衣柜",20)
table=HouseItem("餐桌",1.5)
print(bed)
print(chest)
print(table)

my_home=House("两室一厅",60)
my_home.add_item(bed)
my_home.add_item(chest)
my_home.add_item(table)


print(my_home)
class Gun:
    def __init__(self, model):
        self.model = model
        self.bullet_count = 0

    def add_bullet(self, count):
        self.bullet_count += count

    def shoot(self):
        if self.bullet_count <= 0:
            print("[%s]没有子弹了" % self.model)
            return
        self.bullet_count -= 1
        print("[%s]突突突...[%d]" % (self.model, self.bullet_count))
class Soldier:
    def __init__(self,name):
        self.name=name
        self.gun=None
    def fire(self):
        if self.gun is None:
            print("%s没有枪"% self.name)
            return
        self.gun.add_bullet(50)
        self.gun.shoot()


ak47 = Gun("AK47")

xusanduo=Soldier("许三多")
xusanduo.gun=ak47

xusanduo.fire()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值