在 Python 中,property
函數用于創建和管理類中的屬性。它允許你將方法轉換為屬性,這樣你可以像訪問變量一樣訪問這些方法。這對于控制屬性的訪問和修改非常有用,因為它允許你在屬性訪問時執行額外的邏輯(如驗證或計算)。
使用 property
可以定義 getter、setter 和 deleter 方法。下面是一個示例,展示如何使用 property
函數:
class Person:def __init__(self, name, age):self._name = nameself._age = age@propertydef name(self):return self._name@name.setterdef name(self, value):if not isinstance(value, str):raise ValueError("Name must be a string")self._name = value@propertydef age(self):return self._age@age.setterdef age(self, value):if not (0 <= value <= 120):raise ValueError("Age must be between 0 and 120")self._age = value# 使用示例
person = Person("Alice", 30)# 通過 getter 訪問屬性
print(person.name) # 輸出: Alice
print(person.age) # 輸出: 30# 通過 setter 修改屬性
person.name = "Bob"
person.age = 25print(person.name) # 輸出: Bob
print(person.age) # 輸出: 25# 嘗試設置無效的值將引發異常
# person.age = -5 # ValueError: Age must be between 0 and 120
在這個示例中:
name
和age
屬性通過@property
裝飾器定義 getter 方法。name
和age
屬性通過@name.setter
和@age.setter
裝飾器定義 setter 方法。- 通過這些裝飾器,
Person
類的使用者可以像訪問普通屬性一樣訪問和設置name
和age
,而類內部仍然可以對屬性值進行驗證和其他處理。