1. 程式人生 > >1.25 Python知識進階 - 封裝

1.25 Python知識進階 - 封裝

blog 對象 python erro tin 靜態屬性 elf int name

示例代碼:

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"

  

def shot(self):

     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

,terrorist,B22’) #生成一個角色

分析代碼

  構造方法:函數__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知識進階 - 封裝