封裝
1.封裝是物件導向程式設計的一大特點
2.物件導向程式設計的第一步 將屬性和方法封裝到乙個抽象的類中
3.外界使用類建立物件,然後讓物件呼叫方法
4.物件方法的細節都被封裝在類的內部
需求(1)1.小明體重75.0公斤
2.小明每次跑步都會**0.5公斤
3.小明每次吃東西體重都會增加1公斤
需求(2)
1.小明和小美都愛跑步
2.小美體重45.0公斤
2.每次跑步都會**0.5公斤
3.每次吃東西體重都會增加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('%s 去跑步' %(self.name))
self.weight -= 0.5
def eat(self):
print('%s 去吃東西' %(self.name))
self.weight += 1
xiaoming = person('小明',75.5)
xiaoming.run()
xiaoming.eat()
print(xiaoming)
xiaomei = person('小美',45)
需求:
1.房子有戶型,總面積和家具名稱列表
新房子是沒有家具的
2.家具有名字和占地面積,其中
eg:占地 6平方公尺
3.將以上三件家具新增到房子中
4.列印房子的時候,要求輸出:戶型 總面積 剩餘面積 家具名稱列表
class houseitem:
# 初始化方法
def __init__(self,name,area):
self.name = name
self.area = area
def __str__(self):
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):
# 1.判斷家具的面積
if item.area > self.free_area:
print('%s的面積太大了,無法新增' %(item.name))
return
# 將家具的名稱新增到列表中
# 計算剩餘面積
self.free_area -= item.area
# 建立家具
bed = houseitem('床',600)
print(bed)
chest = houseitem('chest',2)
print(chest)
table = houseitem('桌子',4.5)
print(table)
# 建立房子物件
my_home = house('三室兩廳',200)
# 將家具新增到房子裡面去
1.士兵瑞恩有一把ak47
2.士兵可以**(士兵**扣動的是扳機)
3.槍 能夠 發射子彈(把子彈發射出去)
4.槍 能夠 裝填子彈 --增加子彈的數量
class gun:
def __init__(self,model):
self.model = model
self.bullet_count = 0
def add_bllet(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 ~~~~%s' %(self.model,self.bullet_count))
class soldier:
def __init__(self,name):
self.name = name
self.gun = none
def fire(self):
if self.gun == none:
print('%s 還沒有槍...' %(self.name))
python物件導向之封裝
在python中用雙下劃線開頭的方式將屬性隱藏起來 設定成私有的 其實這僅僅這是一種變形操作且僅僅只在類定義階段發生變形 類中所有雙下劃線開頭的名稱如 x都會在類定義時自動變形成 類名 x的形式 classa n 0 類的資料屬性就應該是共享的,但是語法上是可以把類的資料屬性設定成私有的如 n,會變...
python物件導向之 封裝
1.先看隱藏。在python中用兩個下劃線開頭的方式將屬性隱藏起來。注意 這種只是語法的變形,在讀到有以 開的的函式時,會自動將名稱變成 類名 屬性 這種格式,所以在函式外部是無法通過 屬性 找到這個屬性的。class foo n 111111 將屬性隱藏起來 在定義階段會變成 foo n def ...
python物件導向(二)之封裝
在程式設計中,封裝 encapsulation 是對具體物件的一種抽象,即將某些部分隱藏起來,在程式外部看不到,其含義是其他程式無法呼叫。即 封裝 就是將抽象得到的資料和行為 或功能 相結合,形成乙個有機的整體 即類 封裝的目的是增強安全性和簡化程式設計,使用者不必了解具體的實現細節,而只是要通過外...