Nick Coghlan wrote:
> Aren't the metaclass changes in PEP 3115 partially aimed at eliminating
> the need for stack frame hackery to implement these kinds of things?
> (e.g. the metaclass could stuff a closure into the class namespace under
> the name 'implements' to avoid any need for frame hackery).
Couldn't we use a similar approach like the new super() magic? As far as
I remember super() can access its class through a new cell '__class__'.
Maybe we could introduce a similar way to access the namespace of a
class during its construction time?
class Example:
implements(IExample)
def implements(*args):
# The non local variable __class_ns__ is the namespace of the
# class aka the dict returned by the __prepare__ function of
# the meta class.
nonlocal __class_ns__
...
__class_ns__['spam'] = ...
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