[After going away and thinking about this for a few days...] On Tue, Apr 02, 2002, Martin v. Loewis wrote: > 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. You're right, though I think I prefer "computed binding" to "computed attribute" (assuming you're referring to the __getitem__ / __setitem__ protocol). The question I'm now wrestling with is what to call bindings in general. I'm tripping over this: 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.) > 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). Exactly. Binding operations are different from binding lookups. I'm not sure I understand your unless, though; can you demonstrate with code? -- 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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4