A blog post on choosing more specific types rather than general ones like list and dict.
Sequence
now lives at collections.abc
. BTW, float
is not a supertype of int
(issubclass(int, float) == False
). Normaly, It is acceptable to use int
instead of float
, but speaking of variance, it is more precise to use numbers.Real
:
issubclass(Integral, Real) == True
issubclass(int, Real) == True
issubclass(float, Real) == True
issubclass(complex, Real) == False
yeah it’s an interesting case that an int can be treated as a float. I should probably update my post to mention that it’s not strictly a supertype but a special exception mentioned in python’s typehinting pep: https://peps.python.org/pep-0484/#the-numeric-tower