Discuss / Python / 参考别的教程写了个简易的myproperty

参考别的教程写了个简易的myproperty

Topic source

南小i

#1 Created at ... [Delete] [Delete and Lock User]

这是简易装饰器

class myproperty:
    def __init__(self, myget = None, myset = None):
        self.myget = myget
        self.myset = myset
    def __set__(self, instance, value):
        return self.myset(instance, value)
    def __get__(self, instance, owner = None):
        return self.myget(instance)
    def setter(self, myset):
        return myproperty(self.myget, myset)

这是实现,可以在例题里测试

class Screen(object):
    @myproperty
    def width(self):
        return self._width

    @width.setter
    def width(self, value):
        self._width = value

    @myproperty
    def height(self):
        return self._height

    @height.setter
    def height(self, value):
        self._height = value

    @myproperty
    def resolution(self):
        return self._height * self._width

  • 1

Reply