Python的-描述器Descriptor-例子

def Itemgetter(x):
    def get(s):
        return s[x]
    return get
    
class Property(object):  # 必须是新式类
    def __init__(self, fget):
        self.fget = fget
    def __get__(self, obj, objtype):
        return self.fget(obj)
    def __set__(self, instance, value):
        pass
    def __delete__(self, instance):
        pass

class Test(tuple):
    x = Property(Itemgetter(0))
    y = Property(Itemgetter(1))


a = Test((1, 2))
print(a.x, a.y)

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理