[Python-Dev] Parrot -- should life imitate satire?

Guido van Rossum guido@zope.com
Wed, 01 Aug 2001 09:25:46 -0400

> The vtable interface, at the moment, covers the 
> operators you'd expect to be able to override--assignment, simple math, 
> most string operations, conversion duties, and suchlike things. So this code:
>     a = b + c
> would call the add vtable method for b, and the assign vtable method for a, 

But in Python, this is not an operation on a at all!  It's an
operation on the namespace containing a, and a cannot override it.
I'm sure your VM design can accommodate this, but it points out the
fundamental difference between the languages in their ideas of what a
"variable" is.  Python has at least two types of namespaces in this
context: some namespaces (like module globals) are dictionaries,
others (like function locals) have mapped the variable names to an
array of object references.

--Guido van Rossum (home page: http://www.python.org/~guido/)