描述符

Posted jiawen010

tags:

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

描述符

class Foo:
    def __get__(self, instance, owner):
        print(===>get方法)
    def __set__(self, instance, value):
        print(===>set方法,instance,value)
        instance.__dict__[x]=value #b1.__dict__
    def __delete__(self, instance):
        print(===>delete方法)


class Bar:
    x=Foo() #在何地?
    def __init__(self,n):
        self.x=n #b1.x=10
b1=Bar(10)
print(b1.__dict__)
b1.x=11111111111111111
print(b1.__dict__)

b1.y=11111111111111111111111111111111111111
print(b1.__dict__)
# print(Bar.__dict__)
#在何时?
# b1=Bar()
# b1.x
#
# b1.x=1
#
# del b1.x

# print(b1.x)
#
# b1.x=1
# print(b1.__dict__)
#
# del b1.x

描述符优先级

技术分享图片

 

# class Foo:
#     def __get__(self, instance, owner):
#         print(‘===>get方法‘)
#     def __set__(self, instance, value):
#         print(‘===>set方法‘,instance,value)
#         # instance.__dict__[‘x‘]=value #b1.__dict__
#     def __delete__(self, instance):
#         print(‘===>delete方法‘)
#
#
# class Bar:
#     x=Foo() #在何地?

# print(Bar.x)

# Bar.x=1
# print(Bar.__dict__)
# print(Bar.x)

# print(Bar.__dict__)
# b1=Bar()
# b1.x   #get
# b1.x=1 # set
# del b1.x # delete


# b1=Bar()
# Bar.x=111111111111111111111111111111111111111
# b1.x
#
# del Bar.x
# b1.x



class Foo:
    def __get__(self, instance, owner):
        print(===>get方法)


    # def __delete__(self, instance):
    #     print(‘===>delete方法‘)


class Bar:
    x=Foo() #在何地?
    def  __getattr__(self, item):
        print(----->)

b1=Bar()
b1.x=1
print(b1.__dict__)
b1.xxxxxxxxxxxxxxxxxxxxxxx

 

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

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

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

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

android - 调整片段大小

Java方法

Java初识方法