GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing mail.python.org — [Python-Dev] PEP 231, __findattr__() [Python-Dev] PEP 231, __findattr__()Christian Tismer [email protected]Sat, 02 Dec 2000 18:27:33 +0200
Hi Barry, "Barry A. Warsaw" wrote: > > I've just uploaded PEP 231, which describes a new hook in the instance > access mechanism, called __findattr__() after a similar mechanism that > exists in Jython (but is not exposed at the Python layer). > > You can do all kinds of interesting things with __findattr__(), > including implement the __of__() protocol of ExtensionClass, and thus > implicit and explicit acquisitions, in pure Python. You can also do > Java Bean-like interfaces and C++-like access control. The PEP > contains sample implementations of all of these, although the latter > isn't as clean as I'd like, due to other restrictions in Python. > > My hope is that __findattr__() would eliminate most, if not all, the > need for ExtensionClass, at least within the Zope and ZODB contexts. > I haven't tried to implement Persistent using it though. I have been using ExtensionClass for quite a long time, and I have to say that you indeed eliminate most of its need through this super-elegant idea. Congratulations! Besides acquisition and persitency interception, wrapping plain C objects and giving them Class-like behavior while retaining fast access to internal properties but being able to override methods by Python methods was my other use of ExtensionClass. I assume this is the other "20%" part you mention, which is much harder to achieve? But that part also looks easier to implement now, by the support of the __findattr__ method. > Since it's a long PEP, I won't include it here. You can read about it > at this URL > > http://python.sourceforge.net/peps/pep-0231.html Great. I had to read it twice, but it was fun. ciao - chris -- Christian Tismer :^) <mailto:[email protected]> Mission Impossible 5oftware : Have a break! Take a ride on Python's Kaunstr. 26 : *Starship* http://starship.python.net 14163 Berlin : PGP key -> http://wwwkeys.pgp.net PGP Fingerprint E182 71C7 1A9D 66E9 9D15 D3CC D4D7 93E2 1FAE F6DF where do you want to jump today? http://www.stackless.com
|
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |