Расширение слабого прокси / Копирование
У меня есть класс с таблицей (список списков). Этот класс должен возвращать указатель строки, похожий на sql. Для этого указателя строки я хотел бы на неделю ссылаться на строку таблицы (список) с weakref.proxy
, Тем не менее, я хотел бы добавить дополнительные возможности для указателя строки, например перезаписать __getitem__
метод, позволяющий доступ через, скажем, имена столбцов.
Есть ли простой способ получить такое же поведение (перевод доступа к моему объекту к объекту, на который ссылаются), или мне нужно переопределить все специальные методы?
Как простой способ я мог думать о наследовании (но так как я не нашел документ о weakref.ProxyType
Я даже не буду пытаться унаследовать от этого (как инициировать?). Другим вариантом может быть определение какого-то специального метода даже для того, чтобы всегда перенаправлять "специальный" (__xxx__
) вызовы функций для упомянутого объекта, даже если это делает это невозможным.
1 ответ
Я исследовал еще немного и узнал это:
http://code.activestate.com/recipes/496741-object-proxying/ http://pypi.python.org/pypi/ProxyTypes
Короче говоря, можно переадресовывать все вызовы (я думаю, что получатель в активном состоянии лучше), но я не нашел способа реализовать:
$a = proxy([1,2,3])
$b = a
$print type(b)
>>list
Я остановлюсь только на работе с объектом, который в значительной степени ведет себя как список.