HOWTO use recursive programming using adapters
Вложено:
Как видно, это классическая реализация рекурсии: при достижении такого объекта, у которого отсутствует __parent__, то есть корневого объекта Zope, возвращается "/". Код соответствующего адаптера будет выглядеть следующим образом (аналогичного эффекта, как и в вышеприведённом примере, можно добиться простой регистрацией имеющегося адаптера в zcml для интерфейса ISite, вместо IRootFolder, как это сделано в примере выше):: class Site2PathAdapter(Any2PathAdapter) : adapts(ISite) Готово. Это уже реализовано в Zope: IAbsoluteUrl breadcrumb -- построение абсолютного URL к объекту или breadcrumbs; Python в этом отношении значительно более гибок и от ошибок спасет только строгое следования компонентной модели. ...



