Как использовать дескрипторы при большом количестве атрибутов в классе

К примеру есть класс (прямоугольник), который хранит в себе 2 координаты. Для чтения и обновления значений используется дескрипторы (класс RectangleValue).

Код выглядит так:

class RectangleValue:
    def __set_name__(self, owner, name):
        self.__name = name

    def __get__(self, instance, owner):
        return instance.__dict__[self.__name]

    def __set__(self, instance, amount):
        instance.__dict__[self.__name] = amount

class Rectangle:

    width = RectangleValue()
    heigth = RectangleValue()

    def __init__(self, width, heigth):
        self.width = width
        self.heigth = heigth

Но что делать если атрибутов будет не 2, а 10 и больше, тогда инструкция foo = RectangleValue() для каждого атрибута будет фактически дублированием кода.

Есть ли какие-то более правильные реализации данного кода для большого количества атрибутов?


Ответы (0 шт):