On Sun, Jan 08, 2006 at 08:09:22AM -0800, Ralf W. Grosse-Kunstleve wrote:
> --- Thomas Wouters <[EMAIL PROTECTED]> wrote:
> > The main difference isn't the lookup of 'self', it's the attribute retrieval
> > of 'x' from 'self'.

> I see. Thanks!
> If you put 'self' into a special category (with corresponding C code), 
> couldn't
> you use the same "indexing" tricks as for local variables and make 'self.x'
> just as fast as 'x'?

No need to make 'self' magical for that. You do, however, need to make the
*object* magical for that. It works for local namespaces because the Python
compiler knows exactly which names are local and which aren't. There are two
cases where the compiler can't know for sure (using 'exec' without 'in' and
using 'from module import *') and in those cases, Python doesn't optimize
local variable access all the way. This all won't work for objects and their
attributes because too much is possible at runtime for the current compiler
to handle.

The compiler could, of course, check everything in the whole program,
keeping track of what could possibly adjust which attributes of what object
where. That would be 'type inferencing' and has been (and is being, I guess)
attempted by various people in various projets. However, if your compiler is
so smart, it won't have _any_ problems taking an exlicit self into account :)

-- 
Thomas Wouters <[EMAIL PROTECTED]>

Hi! I'm a .signature virus! copy me into your .signature file to help me spread!
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to