[Python-ideas] Access to function objects

Antoine Pitrou solipsis at pitrou.net
Sat Aug 6 14:13:41 CEST 2011


On Sat, 6 Aug 2011 01:19:58 -0700
Chris Rebert <pyideas at rebertia.com> wrote:

> On Sat, Aug 6, 2011 at 1:16 AM, Chris Rebert <pyideas at rebertia.com> wrote:
> > On Sat, Aug 6, 2011 at 1:10 AM, David Townshend <aquavitae69 at gmail.com> wrote:
> >> Has anyone else ever thought that it might be useful to access a function
> >> object from within the call?
> >
> > Yes:
> 
> And also:
> [Rejected] PEP 3130: Access to Current Module/Class/Function
> http://www.python.org/dev/peps/pep-3130/

The new magic super() uses a similar, hidden, compiler-activated hack
to work properly:

>>> class C:
...     def f(): super
... 
>>> C.f.__closure__
(<cell at 0x7fe2bb402e98: type object at 0x14ec5e0>,)
>>> C.f.__closure__[0].cell_contents
<class '__main__.C'>


>>> sup = super
>>> class D:
...     def f(): sup
... 
>>> D.f.__closure__
>>> 

Regards

Antoine.





More information about the Python-ideas mailing list