[Python-Dev] Postponed annotations break inspection of dataclasses
Guido van Rossum
guido at python.org
Sat Sep 22 15:09:22 EDT 2018
On Sat, Sep 22, 2018 at 11:29 AM Eric V. Smith <eric at trueblade.com> wrote:
> I think this problem is endemic to get_type_hints(). I've never
> understood how you're supposed to use the globals and locals arguments
> to it, but this works:
>
> print(get_type_hints(Bar.__init__, globals()))
>
> as does:
>
> print(get_type_hints(Bar.__init__, Bar.__module__))
>
> But that seems like you'd have to know a lot about how a class were
> declared in order to call get_type_hints on it. I'm not sure __module__
> is always correct (but again, I haven't really thought about it).
>
Still, I wonder if there's a tweak possible of the globals and locals used
when exec()'ing the function definitions in dataclasses.py, so that
get_type_hints() gets the right globals for this use case.
It's really tough to be at the intersection of three PEPs...
--
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20180922/ae1c4611/attachment.html>
More information about the Python-Dev
mailing list