[Python-Dev] Namespaces

Martin v. Loewis martin@v.loewis.de
02 Apr 2002 01:13:26 +0200


Aahz <aahz@pythoncraft.com> writes:

> I'm fine with "local scope" and "object attributes" to disambiguate
> them; I just think it's important that people understand that a name is
> a name is a name, and all names live in *some* namespace.

That isn't really true: a computed attribute lives in no namespace,
instead, some function is invoked to determine the attribute value.

Furthermore, some attributes live in multiple namespaces. Given

  obj.name

what namespace is considered to find the name? NOT the namespace of
obj, alone - Python also considers the namespace of obj's class (if
obj is an instance), of the base classes, etc. OTOH,

  obj.name = None

modifies the namespace of obj (unless name is a computed attribute).

Regards,
Martin