1.25 Python知識進階 - 封裝
示例代碼:
class Role(object):
count = 0
def __init__(self,name,role,weapon,life_value=100,money=15000):
self.name = name
self.role = role
self.weapon = weapon
self.life_value = life_value
self.money = money
self.__heart = "normal"
print("shooting...")
def got_shot(self):
print("ah...,I got shot...")
self.__heart = ‘Die‘
def buy_gun(self,gun_name):
print("just bought %s" %gun_name)
r1 = Role(‘Alex‘,‘police‘,‘AK47’) #生成一個角色
r2 = Role(‘Jack
分析代碼
構造方法:函數__init__稱為構造函數,或構造方法,用於執行類的實例的初始化工作。
析構方法:函數__del__稱為析構函數,或析構方法,用於實現銷毀類的實例所需要的操作。通過del語句,可強制銷毀一個對象實例。
實例方法:又稱為公有方法。類方法的第一參數一般為self,這種方法稱為實例方法。像shot函數都是實例的方法,如果寫成__shot就是私有方法。變成私有方法,就不能直接訪問,但是可以在其他方法中訪問。
屬性:類的數據成員是在類中定義的成員變量,用來存儲描述類的特征的值。
實例屬性:通過self.變量名定義的屬性,稱為實例屬性,也稱為實例變量,成員屬性,成員變量。示例代碼中,在構造方法__init__中定義的self.name等就是實例屬性。
初始化:
一般在__init__方法中初始化
self.實例變量名 = 初始值
訪問:
在其他函數中訪問:
self.實例變量名 = 值 # 寫入
self.實例變量名 # 讀取
在通過對象實例訪問:
obj1 = 類名() # 創建對象實例
obj1.實例變量名 = 值 # 寫入
obj1.實例變量名 # 讀取
私有屬性:通常,以兩個下劃線開頭,但是不以兩個下劃線結束的屬性稱為私有屬性。私有屬性不能直接被訪問,但是可以在方法中訪問。示例代碼中,self.__heart就是私有屬性,只能在方法中進行調用。
強制訪問方法:r1._Role__heart 就可以在外部訪問到
類屬性:聲明屬於類本身的變量,即類的屬性,也稱為類變量、靜態屬性,有的稱它是公有屬性。示例代碼中,count就是類的屬性
初始化:
類變量名 = 初始值
訪問:
類名.類變量名 = 值 # 寫入
類名.類變量名 # 讀取
1.25 Python知識進階 - 封裝