Hi all, I was surprised by an error when trying to set a default_factory for an InitVar pseudo-field in a dataclass. Inspecting the code in dataclasses.py led me to this:
# Special restrictions for ClassVar and InitVar. if f._field_type in (_FIELD_CLASSVAR, _FIELD_INITVAR): if f.default_factory is not MISSING: raise TypeError(f'field {f.name} cannot have a ' 'default factory') # Should I check for other field settings? default_factory # seems the most serious to check for. Maybe add others. For # example, how about init=False (or really, # init=<not-the-default-init-value>)? It makes no sense for # ClassVar and InitVar to specify init=<anything>. So this case is very explicitly prevented but I could not see why. Does anybody know what problem this is trying to prevent or what is the rationale behind this restriction? I asked in stackoverflow[1] and I was suggested to ask here. [1] https://stackoverflow.com/questions/57056029 Thanks, Jacobo de Vera @jovianjake -- https://mail.python.org/mailman/listinfo/python-list