[Python-Dev] PEP 422: Simpler customisation of class creation
Nick Coghlan
ncoghlan at gmail.com
Sun Sep 15 16:40:48 CEST 2013
On 16 September 2013 00:19, Ethan Furman <ethan at stoneleaf.us> wrote:
> Three questions:
>
>
> Would the new __initclass__ function be usable with actual full-blown
> metaclasses?
Sure (as long as the metaclass in question called it at the
appropriate time, which those inheriting from type would do
automatically)).
> The PEP says this:
>> If present on the created object, this new hook will be called by the
>> class creation machinery after the __class__ reference has been initialised.
>
>
> Given that statement, and this example:
>
> class A:
> def __initclass__(cls):
> # do stuff
>
> class B(A):
> pass
>
> am I correct that A's __initclass__ will not run when B is created?
No, that would be pointless (since that's the way class decorators
already behave). "present on the created object" means "hasattr(cls,
'__initclass__') returns True.
> Where are we at with being ready for pronouncement?
The PEP needs to be updated to incorporate the feedback from the last
time I proposed it for inclusion. That's not going to happen for 3.4,
I just forgot to mark it as Deferred - fixed now.
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
More information about the Python-Dev
mailing list