[Python-Dev] Namespaces (original) (raw)
Aahz aahz@pythoncraft.com
Mon, 1 Apr 2002 16:22:32 -0500
- Previous message: [Python-Dev] Namespaces
- Next message: [Python-Dev] Namespaces
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Mon, Apr 01, 2002, Jeremy Hylton wrote:
I think it's fairly common for people to talk about an object's attributes as its namespace. The language reference does not call this a namespace. In fact, the lang ref doesn't define namespace and often uses other words to discuss naming: names, blocks, scopes, environment. Perhaps namespace is too fuzzy and we should introduce a precise term to talk about the attribute "namespace" of an object.
Actually, namespace seems fine and clear to me; what IMO needs clarification is explicit namespaces (i.e. through object references) versus implicit/execution-based namespaces (builtin/global/local).
Which reminds me of another annoyance in that "global" is strictly speaking "module global".
The lang ref does say that the namespace of a class definition becomes the attribute dictionary of the class. So "attribute dictionary" seems to be preferred to "object namespace" <0.5 wink>.
Yeah, those sound synonymous to me, but four syllables beats seven when I'm teaching. ;-)
Aahz: A> It seems pretty clear to me that f.permissions does not live in A> the local/global/builtins namespace, but it sure lives in f's A> namespace. Because attributes are names like any other name and A> can be bound to any Python object, I think it lends crucial A> orthogonality to say that attributes live in object namespace.
Some people will be confused that a function f has two namespaces -- the namespace for its code object and the namespace for its attributes. This reinforces my sense that we shouldn't use the term namespace when we are trying to be precise. (Or that we need a precise definition of namespace and a clear way to disambiguate the two kinds of namespaces assocaited with a function.)
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.
I'd also like to observe that the language reference doesn't say anything about how attributes of objects are resolved. The tutorial says a bit in the chapter on classes, but none of this made it to the language reference.
It would be nice to flesh out these issues in the reference manual.
Well, once we've got this hashed out, it's a SMOW. ;-)
Aahz (aahz@pythoncraft.com) <*> http://www.pythoncraft.com/
Why is this newsgroup different from all other newsgroups?
- Previous message: [Python-Dev] Namespaces
- Next message: [Python-Dev] Namespaces
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]