Dirkjan Ochtman wrote:
> I don't know how hard it would be for Jython, IronPython et al. to
> support this kind of interface, but seeing as how something like
> zope.interface relies on it (and therefore all of Twisted, too, I
> think), it's kind of mandatory anyway.
zope.interface could work without sys._getframe(). It's not mandatory
for its API. getframe is used for a clever hack which makes declaring
interfaces more convenient and readable.
class Example:
implements(IExample)
The implements() function uses frame inspection to find and modify the
local namespace of the class. The code looks like:
def implements(...):
frame = sys._getframe(...)
locals = frame.f_locals
locals['someinterfacedata'] = ...
The same class and interface definition could be written as:
class Example:
pass
implements(Example, IExample)
but it's not as readable as the version of implements() with stack
inspection.
Christian
_______________________________________________
Python-3000 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe:
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com