Форум сайта python.su
0
Можно мне простыми словами объяснить зачем он используется? А то документацию читал, примеры смотрел, но смысл как-то ускользает.
Офлайн
3
1. Это реализация шаблона “Интерфейс” не на уровне интерпретатора, а средствами языка.
2. Удобное средство документирования кода, в т.ч. генерации документации.
3. Используется в фреймворке Twisted для см. пункт 2
4. Используется как основа для компонентной архитектуры ZCA.
… и еще, наверное, где-то =)
Офлайн
0
regallЯ как раз разбираюсь с модулем на twisted. Называется fats. И читал, что используется для документации. Но вот как именно? Можно живой пример в несколько строк.
1. Это реализация шаблона “Интерфейс” не на уровне интерпретатора, а средствами языка.
2. Удобное средство документирования кода, в т.ч. генерации документации.
3. Используется в фреймворке Twisted для см. пункт 2
4. Используется как основа для компонентной архитектуры ZCA.
… и еще, наверное, где-то =)
Офлайн
3
Не совсем понял, что вы хотите узнать ) Пример использования fats или пример использования интерфейсов?
Офлайн
0
regallСейчас читаю книжку по twisted, но там Interface не упоминается или я еще не дошел до той страницы))
Не совсем понял, что вы хотите узнать ) Пример использования fats или пример использования интерфейсов?
Офлайн
3
ЮрчекПо большому счету для разработки на twisted вам знать про zope.interface ничего не нужно.
Сейчас читаю книжку по twisted, но там Interface не упоминается или я еще не дошел до той страницы))
ЮрчекЕсли вы захотите предоставить свою реализацию этого сервиса, вас следует глянуть в интерфейс и просто релизовать все методы, которые присутствуют в интерфейсе. Это есть достаточное уловие для того (если вы все правильно реализовали), что ваша реализация может быть использована взамен стандартной.
Зачем там IHelloFastAGIService? Что он делает? Можно же и без него. Я не понимаю, какое преимущество он дает.
Офлайн
3
В вашем примере кода, на который вы дали ссылки есть пример регистрации адаптера:
components.registerAdapter(HelloFastAGIFactoryFromService,
IHelloFastAGIService,
IFastAGIFactory)
IFastAGIFactory(some_class)
Офлайн
0
Почитал вики Шаблон Интерфейс. Много думал, оговорюсь, что высшего программистского образования я не имею. Я правильно понял, что например у меня есть какой-то код, который использует какой-то интерфейс. Потом я могу подменить реализацию этого интерфейса а тот код, который его использует продолжить работать. А с zope.Interface это можно делать динамически прямо во время выполнения?
Офлайн
3
ЮрчекВерно.
Потом я могу подменить реализацию этого интерфейса а тот код, который его использует продолжить работать.
ЮрчекВ питоне практически все можно во время выполнения, но только делать этого не надо :) zope.interface это программная реализация шаблона Интерфейс с доп. плюшками типа интроспекции, а вот подменять ничего не надо.
А с zope.Interface это можно делать динамически прямо во время выполнения?
Офлайн