Property屬性

江寒雨發表於2024-03-19

裝飾器Property屬性

可以動態的控制屬性的獲取,設定,刪除相關操作

方法一

"""
	是同一個方法名
"""
class MyClass():
	
	def __init__(self,name):
		self.name = name
		
	@property  # 獲取值時候觸發
	def username(self):
		return self.name
		
	@username.setter  # 設定值時候觸發
	def username(self,val):
		# print(val)  # val是設定的右值
		self.name = val
		
	@username.deleter
	def username(self):  # 刪除值的時候觸發
		del self.name

obj = MyClass("小紅")
# 獲取值的時候自動觸發@property 裝飾器下的方法
res = obj.username
print(res)

# 設定值的時候自動觸發@username.setter 裝飾器下的方法
obj.username = "小蘭"
print(obj.username)

# 刪除值的時候自動觸發@username.deleter 裝飾器下的方法
del obj.username

方法二

class MyClass():

	def __init__(self,name):
		self.name = name
		
	# 獲取資料
	def get_username(self):
		return self.name
	
	# 設定資料
	def set_username(self,val):
		self.name = val
	
	# 刪除資料
	def del_username(self):
		del self.name
		
	# 引數的順序: 獲取 , 設定  , 刪除
	username = property(get_username , set_username  , del_username )
		


obj = MyClass("小芳")
# 獲取值的時候,執行get_username下的相關操作
print(obj.username)

# 設定值的時候,執行 set_username 下的相關操作
obj.username = "11223344"
print(obj.username)

# 刪除值的時候,執行 del_username 下的相關操作
del obj.username

相關文章