[Python-Dev] Namespaces
Aahz
aahz@pythoncraft.com
Sat, 6 Apr 2002 09:31:48 -0500
On Sat, Apr 06, 2002, Martin v. Loewis wrote:
> Aahz <aahz@pythoncraft.com> writes:
>>
>> Rebinding a <foo> does not affect the originally bound object
>> (unless the originally bound object's reference count goes to zero).
>>
>> Any ideas about what to call <foo>? (Calling it a binding sounds a
>> little too self-referential.)
>
> That is a "name".
<nod> I'm willing to go along with that if others agree.
>>> 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).
>
> I'm saying that name lookup considers multiple namespaces in some
> cases:
>
>>>> class X:
> ... name = 1
> ...
>>>> x.name
> 1
>>>> x.__dict__.has_key("name")
> 0
You left out x=X()?
> So saying that x.name yields the value from searching the name in the
> namespace of x is wrong.
Sure, no argument here. Right now, I'm trying to settle the issue of
creating bindings before getting into the topic of namespace lookups.
--
Aahz (aahz@pythoncraft.com) <*> http://www.pythoncraft.com/
"There are times when effort is important and necessary, but this should
not be taken as any kind of moral imperative." --jdecker