Fwd: A typing question

Sam Ezeh sam.z.ezeh at gmail.com
Sat Oct 29 17:23:11 EDT 2022


Do you want the following?

```
from typing import List, Optional


class GLOBALS:
    foos: Optional[Foos] = None


class Foo:
    def __init__(self):
        pass


class Foos:
    Foos: List[Foo] = []

    def __init__(self):
        pass


GLOBALS.foos = Foos()
```

Kind regards,
Sam Ezeh

On Sat, 29 Oct 2022 at 22:13, Paulo da Silva <
p_d_a_s_i_l_v_a_ns at nonetnoaddress.pt> wrote:

> Hi!
>
> Consider this simple script ...
>
> ___________________
> from typing import List, Optional
>
> class GLOBALS:
>      foos=None
>
> class Foo:
>
>      def __init__(self):
>          pass
>
> class Foos:
>      Foos: List[Foo]=[]
>      # SOME GLOBALS ARE USED HERE in a real script
>
>      def __init__(self):
>          pass
>
> GLOBALS.foos: Optional[Foos]=Foos()
> ___________________
>
> Running mypy on it:
> pt9.py:18: error: Type cannot be declared in assignment to non-self
> attribute
> pt9.py:18: error: Incompatible types in assignment (expression has type
> "Foos", variable has type "None")
> Line  18 is last line and pt9.py is the scrip.
>
> Replacing last line by
> GLOBALS.foos=Foos()
> and running mypy still gives the second error.
> pt9.py:18: error: Incompatible types in assignment (expression has type
> "Foos", variable has type "None")
>
> What is the common practice in these cases?
>
> Thank you.
>
> --
> https://mail.python.org/mailman/listinfo/python-list
>


More information about the Python-list mailing list