[Python-Dev] Submitting PEP 422 (Simple class initialization hook) for pronouncement (original) (raw)

Antoine Pitrou solipsis at pitrou.net
Sun Feb 10 15:28:14 CET 2013


On Mon, 11 Feb 2013 00:09:55 +1000 Nick Coghlan <ncoghlan at gmail.com> wrote:

As far as the maintenance burden goes, the patch to enable PEP 422 for types.newclass() is trivial: - return meta(name, bases, ns, **kwds) + cls = meta(name, bases, ns, **kwds) + try: + initcl = cls.initclass + except AttributeError: + pass + else: + initcl() + return cls

I didn't know types.new_class(). I suppose that's because I'm not part of the top half dozen people on the planet :-) I've stopped trying to understand when I saw about the build_class additions and whatnot. I now consider that part of the language totally black magic.

I'm not sure it's a good thing when even some maintainers of the language don't understand some of its (important) corners.

The change in the builtin.buildclass implementation is similarly trivial (and has the same semantics), it's just more verbose due to its being written in C.

Sure, every little addition is "trivial". At the end you have a scary monster made of many little trivial additions along the years, and everyone has to take care not to break it.

Regards

Antoine.



More information about the Python-Dev mailing list