Рабочий пример
Чтобы сделать ваш пример дескриптором, он должен иметь метод __ get __ () :
class Descriptor:
def __init__(self, color="red"):
self.color = color
def __get__(self, obj, objtype=None):
return obj.size + ' ' + self.color
Использованиеэтот дескриптор в другом классе:
class A:
pair = Descriptor('green')
def __init__(self, size):
self.size = size
Вызов дескриптора как этот:
>>> a = A('big')
>>> a.pair
'big green'
Надеюсь, этот рабочий пример помогает: -)
Ключевые моменты
1) Класс является дескриптором , если он определяет любой из __ get __ () , __ set __ () или _ _delete __ () .
2) Запустите его, создав экземпляр дескриптора и сохранив его как переменную класса в другом классе.
3) Вызовите дескриптор с помощьюнормальный поиск атрибутов с использованием оператора точки.
Вот и все, что нужно сделать: -)