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.
|_|_) |                    |
| |   | h...@hjp.at         |    -- Charles Stross, "Creative writing
__/   | http://www.hjp.at/ |       challenge!"

Attachment: signature.asc
Description: PGP signature

-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to