On Tue, 15 Mar 2005 08:32:51 -0800, Ron Garret <[EMAIL PROTECTED]> wrote:
>In article <[EMAIL PROTECTED]>, > [EMAIL PROTECTED] (Bengt Richter) wrote: > >> >Did you mean type(x).__getitem__(x,y)? >> > >> Not if x is a classmethod, D'oh. I meant "not if __getitem__ is a classmethod" ;-P > >Oh yeah, right. Duh! > >> >And where is this documented? >> Between the lines in my previous post ;-) > >I see. I guess I wasn't asking a stupid question then :-) > Seriously, no ;-) It's hard to find good documentation on deep nitty-gritties. The most reliable documentation of actual software behavior is inevitably the code that implements it, though that often doesn't give a clue as to the whys of the whats and hows shown. As Raymond Hettinger says in his nice doc (which chew slowly for best nutrition ;-) http://users.rcn.com/python/download/Descriptor.htm """ For objects, the machinery is in object.__getattribute__ which transforms b.x into type(b).__dict__['x'].__get__(b, type(b)). The implementation works through a precedence chain that gives data descriptors priority over instance variables, instance variables priority over non-data descriptors, and assigns lowest priority to __getattr__ if provided. The full C implementation can be found in PyObject_GenericGetAttr() in Objects/object.c. """ The code does show what really happens ;-) (UIAM, for types the analogous stuff is in Objects/typeobject.c) Most documentation is probably reachable via http://www.python.org/ and http://www.python.org/doc/ but sometimes specific stuff is hard to find. Descriptors are discussed in various links of http://www.python.org/doc/newstyle.html and IMO Raymond's http://users.rcn.com/python/download/Descriptor.htm is the most readable. If you google for descrintro you will find a lot of discussion ;-) Regards, Bengt Richter -- http://mail.python.org/mailman/listinfo/python-list