[Python-Dev] rexec.py unuseable

Duncan Booth duncan at rcp.co.uk
Wed Dec 17 04:17:25 EST 2003


Luke Kenneth Casson Leighton <lkcl at lkcl.net> wrote in 
news:20031216212312.GL17021 at lkcl.net:

>  foo3.bar() // executed okay
>  foo3.bar.__set_ccl__(deny_ccl)
> 
>  foo3.bar() 
>  *** EXCEPTION: execute capability barred to "all functions".

This behaviour seems to imply a rather fundamental change to the way that 
Python handles bound methods. At present every time you access foo.bar you 
get a new object created, but I think from your description that you want 
to be able to associate a ccl with all the foo.bar objects.

Or to put it another way:

fn1 = foo3.bar
fn1() // executed okay
fn2 = foo3.bar
fn2.__set_ccl__(deny_ccl)

fn2()
 *** EXCEPTION: execute capability barred to "all functions".
fn1()
 *** ??? What should this do.

If I set a ccl on fn2, should it also affect access to fn1? They are 
separate objects, so shouldn't they have separate ccls? If they share a 
common ccl, then how is it going to be stored without impacting heavily on 
every method call?

-- 
Duncan Booth                      duncan.booth at suttoncourtenay.org.uk
int month(char *p){return(124864/((p[0]+p[1]-p[2]&0x1f)+1)%12)["\5\x8\3"
"\6\7\xb\1\x9\xa\2\0\4"];} // Who said my code was obscure?



More information about the Python-Dev mailing list