Python學習第一天:面向物件之封裝
阿新 • • 發佈:2018-11-02
封裝是根據職責將屬性和方法 封裝到一個抽象的類中。
下面是我在學習中的練習案例:
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)