property属性

Posted urls

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

 

以上是关于property属性的主要内容,如果未能解决你的问题,请参考以下文章

顶点

Failed to convert property value of type ‘java.lang.String‘ to required type ‘int‘ for property(代码片段

使用 React 实验性中继片段:缺少属性 '"$fragmentRefs"'

Vue报错:Uncaught TypeError: Cannot assign to read only property 'exports' of object 的解决方法(代码片段

unity shader学习笔记 shader基础结构以及Properties面板

Xcode 快速开发 代码块