D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
share
/
doc
/
python-zope-interface-4.0.5
/
docs
/
Filename :
foodforthought.rst
back
Copy
================================ Food-based subscription examples ================================ This file gives more subscription examples using a cooking-based example: .. doctest:: >>> from zope.interface.adapter import AdapterRegistry >>> registry = AdapterRegistry() >>> import zope.interface >>> class IAnimal(zope.interface.Interface): ... pass >>> class IPoultry(IAnimal): ... pass >>> class IChicken(IPoultry): ... pass >>> class ISeafood(IAnimal): ... pass Adapting to some other interface for which there is no subscription adapter returns an empty sequence: .. doctest:: >>> class IRecipe(zope.interface.Interface): ... pass >>> class ISausages(IRecipe): ... pass >>> class INoodles(IRecipe): ... pass >>> class IKFC(IRecipe): ... pass >>> list(registry.subscriptions([IPoultry], IRecipe)) [] unless we define a subscription: .. doctest:: >>> registry.subscribe([IAnimal], ISausages, 'sausages') >>> list(registry.subscriptions([IPoultry], ISausages)) ['sausages'] And define another subscription adapter: .. doctest:: >>> registry.subscribe([IPoultry], INoodles, 'noodles') >>> meals = list(registry.subscriptions([IPoultry], IRecipe)) >>> meals.sort() >>> meals ['noodles', 'sausages'] >>> registry.subscribe([IChicken], IKFC, 'kfc') >>> meals = list(registry.subscriptions([IChicken], IRecipe)) >>> meals.sort() >>> meals ['kfc', 'noodles', 'sausages'] And the answer for poultry hasn't changed: .. doctest:: >>> meals = list(registry.subscriptions([IPoultry], IRecipe)) >>> meals.sort() >>> meals ['noodles', 'sausages']
Name
Size
Last Modified
Owner
Permissions
Actions
Makefile
5.461
KB
February 28 2013 6:51:06
root
0644
README.rst
24.32
KB
February 28 2013 6:51:06
root
0644
README.ru.rst
33.185
KB
February 28 2013 6:51:06
root
0644
adapter.rst
14.796
KB
February 28 2013 6:51:06
root
0644
adapter.ru.rst
20.673
KB
February 28 2013 6:51:06
root
0644
api.rst
21.021
KB
February 28 2013 6:51:06
root
0644
conf.py
7.985
KB
February 28 2013 6:51:06
root
0644
foodforthought.rst
1.701
KB
February 28 2013 6:51:06
root
0644
hacking.rst
10.583
KB
February 28 2013 6:51:06
root
0644
human.rst
6.275
KB
February 28 2013 6:51:06
root
0644
human.ru.rst
10.431
KB
February 28 2013 6:51:06
root
0644
index.rst
0.608
KB
February 28 2013 6:51:06
root
0644
make.bat
4.99
KB
February 28 2013 6:51:06
root
0644
verify.rst
3.52
KB
February 28 2013 6:51:06
root
0644
2017 © D7net | D704T team