On 2022-10-30 09:23:27 -0400, Thomas Passin wrote: > On 10/30/2022 6:26 AM, Peter J. Holzer wrote: > > On 2022-10-29 23:59:44 +0100, Paulo da Silva wrote: > > > 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). > > Quoting a forward-referenced type is the way to use one. Unquoted types > need to have been declared already.
Yes. I was referring to the code as written. Why does that work? I don't think it should. hp -- _ | Peter J. Holzer | Story must make more sense than reality. |_|_) | | | | | h...@hjp.at | -- Charles Stross, "Creative writing __/ | http://www.hjp.at/ | challenge!"
signature.asc
Description: PGP signature
-- https://mail.python.org/mailman/listinfo/python-list