On 20 Mar 2014 06:24, "Antoine Pitrou" <solipsis at pitrou.net> wrote: > > On Wed, 19 Mar 2014 19:32:50 +0000 > Brett Cannon <bcannon at gmail.com> wrote: > > > > > > In http://bugs.python.org/issue19359#msg213530 I proposed to introduce a > > > "proxy > > > protocol" (__proxy__ / tp_proxy) that would be used as a fallback by > > > _PyObject_LookupSpecial to fetch the lookup target, i.e.: > > > > > > def _PyObject_LookupSpecial(obj, name): > > > tp = type(obj) > > > try: > > > return getattr(tp, name) > > > except AttributeError: > > > return getattr(tp.tp_proxy(), name) > > > > > > What do you think? > > > > > > > Without having the code in front of me, would this only be for magic > > methods and attributes, or all attributes? IOW would this mean that if I > > assign an object to __proxy__ it would take care of the uses of __getattr__ > > for proxying? > > In a first approach it would be only for magic methods and attributes. > It if proves successful, perhaps it can be later expanded to also be > used for regular lookups. > > By the way, Benjamin pointed me to a prior discussion: > http://bugs.python.org/issue643841 Graeme Dumpleton has also subsequently written a library to handle easier creation of correct proxy types: https://pypi.python.org/pypi/wrapt It isn't as simple as changing one lookup function though - abstract.c reads the type slots directly, and those are already hairy performance critical code paths (especially the binary operator type dispatch). Cheers, Nick. > > Regards > > Antoine. > _______________________________________________ > Python-Dev mailing list > Python-Dev at python.org > https://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20140320/907f0cc7/attachment.html>
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