On Fri, Jun 23, 2023 at 2:35 AM Jelle Zijlstra <jelle.zijls...@gmail.com> wrote:
> > > El jue, 22 jun 2023 a las 8:22, Randolf Scholz (<randolf.sch...@gmail.com>) > escribió: > >> Dataclasses should provide a way to ignore a type hinted attributes, and >> not consider them as fields. >> >> For example, some attributes might be derived during `__post_init__` from >> the values of the fields or other variables. >> >> If one wants to still type hint these attributes, one has to awkward >> workarounds to avoid having dataclass interpret them as fields. ( >> https://stackoverflow.com/questions/76532816) >> >> I propose `NON_FIELDS` sentinel, analogous to `KW_ONLY`. (alternative >> name suggestions welcome). when writing a dataclass, all attributes after >> this sentinel are ignored and not considered fields. >> >> ``` >> @dataclass >> class Foo: >> field0: int >> field1: int >> >> _: KW_ONLY >> >> fieldN: int >> >> _: NON_FIELDS >> >> attr0: int # @dataclass will ignore this type hint. >> > > How is this different from `attr0: int = field(init=False)`? > attr0 would be listed as a `field` in the introspectable attributes of the dataclass in this way. That is why I did not suggest that in my initial answer to Randolf on stackoverflow: https://stackoverflow.com/questions/76532816/type-hint-extra-attributes-not-fields/76533091#76533091 I like the dataclasses.attribute idea, though - (but it will also require static type checking tools to review their dataclass special casing - it looks like there is no escape from that). > > >> ``` >> >> Additionally one could consider adding an `attribute` typing construct, >> such that `attr0: attribute[int]` would mark it as a non-field attribute. >> _______________________________________________ >> Python-ideas mailing list -- python-ideas@python.org >> To unsubscribe send an email to python-ideas-le...@python.org >> https://mail.python.org/mailman3/lists/python-ideas.python.org/ >> Message archived at >> https://mail.python.org/archives/list/python-ideas@python.org/message/P67URFV2JJRFD6J5TXD44EEBO4IRTEYF/ >> Code of Conduct: http://python.org/psf/codeofconduct/ >> > _______________________________________________ > Python-ideas mailing list -- python-ideas@python.org > To unsubscribe send an email to python-ideas-le...@python.org > https://mail.python.org/mailman3/lists/python-ideas.python.org/ > Message archived at > https://mail.python.org/archives/list/python-ideas@python.org/message/HS5E5XNHKLO47Q6UPF5QVUCIK2FR6VSF/ > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/C5QJQT5YV7UOKFF57PWD4VSF4RWUDOSF/ Code of Conduct: http://python.org/psf/codeofconduct/