typing: property/setter and lists? [RESOLVED ERRATA]

Paulo da Silva p_d_a_s_i_l_v_a_ns at nonetnoaddress.pt
Thu Nov 3 14:35:21 EDT 2022


Às 05:32 de 03/11/22, Paulo da Silva escreveu:
> À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]]:
I meant, of course,
def foos(self) -> Union[list[int],int]:

Sorry.
Paulo




More information about the Python-list mailing list