首页 > 其他 > 详细

描述符

时间:2018-12-19 11:51:40      阅读:168      评论:0      收藏:0      [点我收藏+]

描述符

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

 

描述符

原文:https://www.cnblogs.com/jiawen010/p/10142224.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!