Fwd: A typing question

Peter J. Holzer hjp-python at hjp.at
Sun Oct 30 06:26:56 EDT 2022


On 2022-10-29 23:59:44 +0100, Paulo da Silva wrote:
> Às 22:34 de 29/10/22, dn escreveu:
> > Solution (below) will not work if the mention of Foos in GLOBALS is a
> > forward-reference.
> > Either move GLOBALS to suit, or surround "Foos" with quotes.
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> This is the problem for me.

Quotes are a bit ugly, but why are they a problem?

[...]

> The funny thing is that if I replace foos by Foos it works because it gets
> known by the initial initialization :-) !
> 
> ________________________
> from typing import List, Optional
> 
> class GLOBALS:
>     Foos: Optional[Foos]=None
[...]
> class Foos:

That seems like a bug to me. What is the «Foos» in «Optional[Foos]»
referring to?

If it's the class attribute «Foos» then that's not a type and even if
its type is inferred that's not the same as «Optional[it's type]», or is
it?

If it's referring to the global symbol «Foos» (i.e. the class defined
later) that hasn't been defined yet, so it shouldn't work (or
alternatively, if forward references are allowed it should always work).

        hp

-- 
   _  | Peter J. Holzer    | Story must make more sense than reality.
|_|_) |                    |
| |   | hjp at hjp.at         |    -- Charles Stross, "Creative writing
__/   | http://www.hjp.at/ |       challenge!"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://mail.python.org/pipermail/python-list/attachments/20221030/20db3a9b/attachment.sig>


More information about the Python-list mailing list