This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author NeilGirdhar
Recipients NeilGirdhar, eric.smith, rhettinger, sobolevn, veky
Date 2022-02-22.04:32:23
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1645504344.12.0.589170633605.issue46757@roundup.psfhosted.org>
In-reply-to
Content
@Raymond yeah I've been thinking about this some more, and there's no way to have a "top level" method with the dataclass decorator.

I think I will make a case to have a class version of dataclasses that works with inheritance.  Class versions of dataclasses are used in some places like here: https://github.com/google/flax/blob/main/flax/struct.py#L184
They just call dataclass on the class in __init_subclass__.

If we had something like this in the standard library, then you could put your empty __post_init__ in that class.  You could also make __init__ call super so that mixins would be initialized (right now the collider pattern you showed also breaks if B is not a dataclass, and has a non-trivial __init__).
History
Date User Action Args
2022-02-22 04:32:24NeilGirdharsetrecipients: + NeilGirdhar, rhettinger, eric.smith, veky, sobolevn
2022-02-22 04:32:24NeilGirdharsetmessageid: <1645504344.12.0.589170633605.issue46757@roundup.psfhosted.org>
2022-02-22 04:32:24NeilGirdharlinkissue46757 messages
2022-02-22 04:32:23NeilGirdharcreate