[Python-Dev] init_subclass is a class method (Was: Make class_getitem a class method) (original) (raw)
Serhiy Storchaka storchaka at gmail.com
Fri Dec 15 12:40:06 EST 2017
- Previous message (by thread): [Python-Dev] Make __class_getitem__ a class method
- Next message (by thread): [Python-Dev] __init_subclass__ is a class method (Was: Make __class_getitem__ a class method)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
15.12.17 19:04, Ivan Levkivskyi пише:
Good point! Pure Python will be the primary use case and we have another precedent for "automatic" class method: initsubclass (it does not need to be decorated).
init_subclass is very different beast, and parallels with it can be confusing. It is automatically decorated with classmethod if it is a regular function implemented in C. The following two examples are totally equivalent:
class A: def init_subclass(cls): pass
class B: @classmethod def init_subclass(cls): pass
help(A) shows init_subclass() as a class method (in 3.7).
But if you implement the class in C you need to make init_subclass a class method.
I think init_subclass should be documented as a class method since it is a class method.
- Previous message (by thread): [Python-Dev] Make __class_getitem__ a class method
- Next message (by thread): [Python-Dev] __init_subclass__ is a class method (Was: Make __class_getitem__ a class method)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]