On Sun, Feb 10, 2013 at 11:33 PM, Simon Cross
<hodgestar+python...@gmail.com> wrote:
> On Sun, Feb 10, 2013 at 2:32 PM, Nick Coghlan <ncogh...@gmail.com> wrote:
>> For those that don't recall the original discussion, the proposal is
>> to add a new __init_class__ hook, invoked after the class object is
>> created, but before the class decorators are applied. This provides a
>> simple approach to inherited post-creation modification of classes,
>> without the need for a custom metaclass.
>
> Couldn't one just write a metaclass that calls __init_class__ for you?

And, indeed, that's what Zope did more than 10 years ago. The problem
is that you're now locked in to that metaclass - metaclass conflicts
become a permanent risk.

You also can't *add* a metaclass to public classes, the risk of
introducing metaclass conflicts means that such a change is always
backwards incompatible.

Adding __init_class__ is fine though, because that's no higher risk
than adding a __new__ or __init__ method (it's actually lower risk,
since the signature is always consistent).

Cheers,
Nick.

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to