On 4 Apr 2015 00:29, "Martin Teichmann" <lkb.teichmann at gmail.com> wrote: > > > When I first wrote PEP 422 I was of the view that "Python 2 allows > > class definition postprocessing injection, we should allow it in > > Python 3 as well". I've since changed my view to "Having to declare > > post-processing of a class definition up front as a decorator, base > > class or metaclass is a good thing for readability, as otherwise > > there's nothing obvious when reading a class definition that tells you > > whether or not postprocessing may happen, so you have to assume its > > possible for *every* class definition". > > Nick, I couldn't agree more with you, yet I think PJ actually brought > up a very interesting point. Post-processing is a very common thing > these days, and has been re-written so many times that I think it is > about time that something like it should be in the standard library. > > I'm less thinking about decorated methods, more about descriptors. > They always have the problem that they don't know which attribute they > belong to, so every author of a framework that defines descriptors > writes a metaclass which goes through all the descriptors and tells > them their attribute name. Extending the descriptor protocol to include a per-descriptor hook that's called at class definition time sounds like a potentially nice way to go to me. While you *could* still use it to arbitrarily mutate the class object, it's much clearer that's not the intended purpose, so I don't see it as a major problem. Cheers, Nick. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20150404/5df72b2b/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