typing: property/setter and lists? [RESOLVED]

Paulo da Silva p_d_a_s_i_l_v_a_ns at nonetnoaddress.pt
Thu Nov 3 01:32:18 EDT 2022


Às 03:24 de 03/11/22, Paulo da Silva escreveu:
> Hi!
> 
> And a typing problem again!!!
> _______________________________________
> class C:
>      def __init__(self):
>          self.__foos=5*[0]
> 
>      @property
>      def foos(self) -> list[int]:
>          return self.__foos
> 
>      @foos.setter
>      def foos(self,v: int):
>          self.__foos=[v for __i in self.__foos]
> 
> c=C()
> c.foos=5
> print(c.foos)
> _______________________________________
> 
> mypy gives the following error:
> error: Incompatible types in assignment (expression has type "int", 
> variable has type "List[int]")
> 
> How do I turn around this?
> 
Changing def foos(self) -> list[int]:  to
  def foos(self) -> Union[list[int]]:
fixes the problem.
Not so elegant, however!

Regards.
Paulo




More information about the Python-list mailing list