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)


# 方法二
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)

 

上一篇:Python类的property属性


下一篇:代码摘抄:class Properties, package java.util , jt.jar