On Mon, Dec 21, 2020 at 8:26 AM Paul Bryan <pbr...@anode.ca> wrote:

> Wouldn't that still work if bool's __int__ returns 1?
>

Yes, there are ways you could accomplish the `sum(trues)` pattern other
than making bool a subclass of int.  But as Chris points out, the value of
`1 == True == 1.0` is pretty fundamental to many other patterns also.  And
likewise, things being in sets by equality rather than identity is likewise
fundamental.  The change you suggest to make `True != 1` "breaks the world".


>
> On Mon, 2020-12-21 at 03:09 -0500, David Mertz wrote:
>
> I sure hope this never happens! It would break millions of working lines
> and kill a common useful pattern.
>
> ntrue = sum(this == that for this, that in items)
>
> -100.
>
> On Mon, Dec 21, 2020, 3:00 AM Paul Bryan <pbr...@anode.ca> wrote:
>
> I know this has come up in the past.
>
> Could the consensus have changed regarding bool's inheritance from int?
>
> This is not intuitive (to me), and recently bit me as a bug:
>
> Python 3.9.1 (default, Dec 13 2020, 11:55:53)
>
> [GCC 10.2.0] on linux
>
> Type "help", "copyright", "credits" or "license" for more information.
>
> >>> {1,True}
>
> {1}
>
>
> I've worked around it by storing tuple(type, value) in the set, which is
> fugly. Yes, I need mixed types in the set, and I'm using the set for
> efficient lookup.
>
> A contrived example I dreamed-up, which I also find non-intuitive:
>
> >>> x = {}
>
> >>> x[True] = 1
>
> >>> x
>
> {True: 1}
>
> >>> x[1] = 1
>
> >>> x
>
> {True: 1}
>
>
> Maybe a wish list item for Python 4.0?
>
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/3GIWJ3IOTZMJ3ZFPJPQ3EF3SSLBEOSID/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
>
>

-- 
The dead increasingly dominate and strangle both the living and the
not-yet born.  Vampiric capital and undead corporate persons abuse
the lives and control the thoughts of homo faber. Ideas, once born,
become abortifacients against new conceptions.
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/US4EQCGIKGUPI4IBH4VUXCK7FP5GZ5FG/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to