On 22 December 2017 at 19:50, Gregory P. Smith <g...@krypto.org> wrote:

> My preference for this is "just use Any" for anyone not concerned about the
> type.  But if we wanted to make it more opaque so that people need not
> realizing that they are actually type annotations, I suggest adding an alias
> for Any in the dataclasses module (dataclasses.Data = typing.Any)
>
> from dataclasses import dataclass, Data
>
> @dataclass
> class Swallow:
>     weight_in_oz: Data = 5
>     laden: Data = False
>     species: Data = SwallowSpecies.AFRICAN
>
> the word "Data" is friendlier than "Any" in this context for people who
> don't need to care about the typing module.
>
> We could go further and have Data not be an alias for Any if desired (so
> that its repr wouldn't be confusing, not that anyone should be looking at
> its repr ever).

That sounds like a nice simple proposal. +1 from me.

Documentation can say that variables should be annotated with "Data"
to be recognised by the decorator, and if people are using type
annotations an actual type can be used in place of "Data" (which acts
the same as typing.Any. That seems to me to describe the feature in a
suitably type-hinting-neutral way, while still making it clear how
data classes interact with type annotations.

Paul
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to