1. 程式人生 > >Python學習第一天:面向物件之封裝

Python學習第一天:面向物件之封裝

  封裝是根據職責屬性方法 封裝到一個抽象的中。

下面是我在學習中的練習案例:

1.小明愛跑步

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("feizhu")
        self.weight 
-= 0.5 def eat(self): print("miaotiao") self.weight += 1 xiaoming = Person("小明",85.0) xiaoming.run() xiaoming.eat() print(xiaoming) xiaomei = Person("小妹",60) xiaomei.run() xiaomei.run() print(xiaomei)

 

2.擺放傢俱

'''
需求:
1.房子有戶型、總面積和傢俱名稱列表
2.傢俱有名字和佔地面積
其中,床佔地4平米,衣櫃佔地2平米,桌子佔地1.5平米
3.將以上三件傢俱新增到房子中
''' class HouseItem: def __init__(self,name,area): self.name = name self.area = area def __str__(self): return "[%s]佔地%.1f平米" % (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): print("新增:%s" % item) self.free_area = self.free_area - item.area self.item_list.append(item.name) #1.建立傢俱物件 bed =HouseItem("",4) chest = HouseItem("衣櫃",2) table = HouseItem("桌子",1.5) print(bed) print(chest) print(table) #2.建立房子物件 my_home = House("兩室",60) my_home.add_item(bed) my_home.add_item(chest) my_home.add_item(table) print(my_home)

 

3.士兵突擊

'''
需求:
1.士兵許三多有一把AK47
2.士兵可以開火
3.槍能夠發射子彈
4.槍能裝填子彈---增加子彈數量
'''

#建立一個gun類
class Gun:
    def __init__(self,model):
        self.model = model
        self.count = 0
    def add_count(self,count):
        self.count += count
    def shoot(self,times):
        self.times = times
        #1.判斷子彈的數量
        if self.count <times:
            print("%s子彈不夠,剩餘%d發" % (self.model,self.count))
            return
        #2.發射子彈
        self.count -= self.times
        print("%s突突突[子彈剩餘:%d發]" % (self.model,self.count))


#建立一個士兵類
class Soldier:
    def __init__(self,name):
        self.name = name
        self.gun = None
    #定義開火的方法
    def fire(self):
        #1.判斷士兵是否有槍
        if self.gun ==None:
            print("%s沒有槍" % self.name)

            return
        #2.喊口號
        print("%s衝鴨!!!" % self.name)
        #3.裝子彈
        self.gun.add_count(50)
        #4.發射子彈
        self.gun.shoot(2)

#建立槍物件
ak47 = Gun("AK47")


#建立士兵物件
xusanduo = Soldier("許三多")

#給士兵分配一把槍
xusanduo.gun = ak47
xusanduo.fire()
print(xusanduo)