You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What I'm doing here is making _hidden and _post unable to be initialized as part of the given args on construction (meaning you can't set it via _hidden="hello") . It's possible to do this kind of thing without slots by just initializing it in __post_init__ but with slots, you can't without having to define __slots__ at the top, which looks ugly.
Is it possible to add this functionality? Or am I misreading documentation and this is already possible?
The text was updated successfully, but these errors were encountered:
No, it's not already possible. I originally didn't want to implement something like late_init (taking the name from Kotlin) because I think it means checking the type before generating __init__ which we don't do for anything else, so it would be messy. Even factory is implemented without needing to do this. I also thought it was neat just to be able to simply assign attributes in __post_init__. That said it never occurred to me that missing it out would be a problem for slotted classes.
I need to think about this more to work out how best to implement the feature.
I want to use slots in CPython using dataclassy, but I also want to be able to hide initializers for certain variables from the user. For example:
What I'm doing here is making
_hidden
and_post
unable to be initialized as part of the given args on construction (meaning you can't set it via_hidden="hello"
) . It's possible to do this kind of thing without slots by just initializing it in__post_init__
but with slots, you can't without having to define__slots__
at the top, which looks ugly.Is it possible to add this functionality? Or am I misreading documentation and this is already possible?
The text was updated successfully, but these errors were encountered: