Python中的訪問器和修改器方法


Python中的訪問器和修改器方法用於訪問類的私有資料,這些資料無法從類外部訪問。在面向物件程式設計中,類物件的數劇被封裝,即物件資料保持私有,無法從物件外部訪問。可以使用Python中的訪問器和修改器方法從物件外部訪問這些私有資料。這些方法也稱為Python中的getter和setter方法。在本文中,我們將透過示例瞭解訪問器和修改器方法。

訪問器方法

訪問器方法用於訪問物件資料。可以使用訪問器方法訪問物件的私有變數。訪問器方法宣告為公共方法,返回物件的私有成員資料。訪問器方法也稱為getter方法,因為它們用於獲取物件資料。

在Python中,訪問器方法使用@property裝飾器定義。呼叫訪問器方法時,它會返回物件的私有成員變數值。

示例

在下面的示例中,我們將定義一個名為Person的類,其中包含一個私有變數_name。然後,我們建立一個name訪問器方法,該方法返回_name變數的值,它是Person類的私有成員變數。我們可以透過建立一個person物件並使用name訪問器方法訪問值來訪問_name屬性的值。

class Person:
   def __init__(self, name):
      self.__name = name

   @property
   def name(self):
      return self.__name

person = Person("John")
print(person.name)  

輸出

John

修改器方法

修改器方法用於修改物件的私有資料。修改器方法也稱為setter方法,因為它們用於設定/修改物件私有變數的值。修改器方法宣告為私有方法,修改物件變數的私有值。

在Python中,修改器方法使用@.setter裝飾器定義,該裝飾器指定特定方法的行為類似於setter方法。呼叫修改器方法時,它會設定物件私有變數的值。

示例

在下面的示例中,我們定義一個Person類,它具有一個私有_name變數。我們還分別使用@property和@name.setter裝飾器定義一個name訪問器方法和一個name修改器方法。name修改器方法在呼叫函式時傳遞值引數時修改_name變數的值。

class Person:
   def __init__(self, name):
      self.__name = name

   @property
   def name(self):
      return self.__name

   @name.setter
   def name(self, value):
      self.__name = value

person = Person("John")
person.name = "Jane"
print(person.name)  

輸出

Jane

結論

訪問器和修改器方法用於面向物件程式設計中,以提供對物件私有變數的訪問。這些方法也稱為getter和setter方法,因為它們分別用於獲取和設定/修改物件的私有變數。Python中的訪問器和修改器方法分別使用@property和@<variable_name>.setter裝飾器定義。

更新於:2023年4月13日

4K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.