描述符

Posted 月为暮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了描述符相关的知识,希望对你有一定的参考价值。

# 描述符,相当于一个代理
class Str:
    def __init__(self,name):
        self.name = name
    # 取值操作时使用
    # instance:传入对象
    # owner:对象的类
    def __get__(self, instance, owner):
        print("get--->",instance,owner)
        # 返回对象的name属性
        return instance.__dict__[self.name]
    # 赋值操作时使用
    def __set__(self, instance, value):
        print("set-->",instance,value)
        # 设置属性
        instance.__dict__[self.name] = value
    # 删除操作时使用
    def __delete__(self, instance):
        print("delete——--》",instance)
        instance.__dict__.pop(self.name)
class People:
    name=Str(name)
    print(name)
    def __init__(self,name,age,salary):
        self.name=name
        print(self.name)
        self.age=age
        self.salary=salary

p1 = People(wangconng,21,-1000)

# 调用
print(p1.__dict__)
p1.name

# 赋值
print(p1.__dict__)
p1.name = cong
print(p1.__dict__)

#删除
print(p1.__dict__)
del p1.name
print(p1.__dict__)

# 描述符分为两种
# 数据描述符:至少实现了__set__(),__get__()
# 非数据描述符:没有实现__set__()
# 类操作属性>数据描述符
# 数据描述符 > 对象操作属性
# 对象描述符 > 非数据属性
# 非数据属性 > 找不到

 

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

编写一个程序, 将 a.txt 文件中的单词与 b.txt 文件中的 单词交替合并到 c.txt 文件中, a.txt 文件中的单词用回车符 分隔, b.txt 文件中用回车或空格进行分隔。(代码片段

Java字符代码中干掉制表符回车符和换行符

通过 Java 正则表达式提取 semver 版本字符串的片段

android - 调整片段大小

Java方法

Java初识方法