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