property
可以把方法变成属性 : 可以动态的控制属性的获取,设置,删除相关操作
@property 获取属性
@方法名.setter 设置属性
@方法名.deleter 删除属性
方法一
是同一个方法名
class MyClass():
def __init__(self,name):
self.name = name
@property
def username(self):
return self.name
# pass
@username.setter
def username(self,val):
# print(val)
self.name = val
pass
@username.deleter
def username(self):
# print("222")
del self.name
pass
obj = MyClass("小红")
获取值的时候自动触发@property 装饰器下的方法
res = obj.username
print(res)
设置值的时候自动触发@username.setter 装饰器下的方法
obj.username = "小兰"
print(obj.username)
删除值的时候自动触发@username.deleter 装饰器下的方法
del obj.username
print(obj.username)
View Code
方法二
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
print(obj.username)
View Code
Original: https://www.cnblogs.com/shuaiyao666/p/16079947.html
Author: 小帅同学啊
Title: python面向对象之property属性
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/596849/
转载文章受原作者版权保护。转载请注明原作者出处!