On Tue, Mar 7, 2017 at 6:27 PM, Erik <pyt...@lucidity.plus.com> wrote:
> Good point about list.extend(). I don't think __type_hint__ could help >> with .__contains__() or .count() or .remove(). E.g.: >> >> In [7]: lst = [1.0, 2.0, 1+0j, F(1,1)] >> In [8]: from fractions import Fraction as F >> In [9]: lst = [1.0, 2.0, 1+0j, F(1,1)] >> In [10]: 1 in lst >> Out[10]: True >> >> The list has absolutely nothing of the right type. Yet it contains an >> item, counts things that are equal, finds a position for an equal item. >> > > Sure, but if the needle doesn't have the same type as the (homogeneous) > haystack, then the rich comparison would still need to be done as a > fallback (and would produce the result you indicate). > In [22]: class Eq(int): def __eq__(self, other): return True ....: In [23]: four, five, six = Eq(4), Eq(5), Eq(6) In [24]: lst = [four, five, six] In [25]: lst.count(Eq(7)) Out[25]: 3 How would this work (other than saying "don't do that it's perverse")? -- Keeping medicines from the bloodstreams of the sick; food from the bellies of the hungry; books from the hands of the uneducated; technology from the underdeveloped; and putting advocates of freedom in prisons. Intellectual property is to the 21st century what the slave trade was to the 16th.
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/