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...@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 > -- https://mail.python.org/mailman/listinfo/python-list