bool and int
Mark Bourne
nntp.mbourne at spamgourmet.com
Fri Jan 27 17:14:57 EST 2023
avi.e.gross at gmail.com wrote:
...
> Interestingly, I wonder if anyone has
> designed an alternate object type that can be used mostly in place of
> Booleans but which imposes changes and restrictions so trying to add a
> Boolean to an integer, or vice versa, results in an error. Python is
> flexible enough to do that and perhaps there already is a module out there
Not exactly what you describe, but I did once write a subclass of int
for use in an SNMP interface, where true is represented as 1 and false
as 2. I don't recall the exact details offhand, but it involved
overriding __bool__ so that a value of 1 returned True and anything else
False. The way it was used should have ensured that it only ever had
the value 1 or 2, but doing it this way round (rather than e.g. 2 being
False and anything else True) meant that if it somehow got the value 0,
that would also be treated as False. I think it also overrode __init__
(or perhaps __new__) to covert a bool True or False to 1 or 2 (rather
than 1 or 0) for its own value, so it could be initialised from either
an int or a bool and correctly converted in either direction via int()
or bool().
So Python is even flexible enough to be made to deal with insane
situations where False is 2!
--
Mark.
More information about the Python-list
mailing list