On 9/11/17 9:43 AM, tds333@mailbox.org wrote:
Hi Eric,
I have on question not addressed yet.
The implementation is based on "__annotations__" where the type is specified.
But "__annotations__" is not always filled. An interpreter version with special optimization
could remove all __annotations__ for performance reasons. (Discussed in other threads)
In this case the dataclass does not work or will there be a fallback?
I know it is a little bit hypothetical because an interpreter with this optimization is
not there yet. I am looking only in the future a bit.
Asking this because type annotations are stated as completely optional for Python.
And this use case will break this assumption.
Yes, if there are no __annotations__, then Data Classes would break. typing.NamedTuple has the same issue. We discussed it a little bit last week, but I don't think we came to any conclusions.
Since @dataclass ignores the value of the annotation (except for typing.ClassVar), it would continue to work if the type was present, buy maybe mapped to None or similar.