[Python-Dev] bool does not want to be subclassed? (original) (raw)
"Martin v. Löwis" martin at v.loewis.de
Fri Feb 13 02:47:19 EST 2004
- Previous message: [Python-Dev] bool does not want to be subclassed?
- Next message: [Python-Dev] bool does not want to be subclassed?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Joshua Marshall wrote:
I don't think I'm convinced; the same argument could be used for integers (if it doesn't make sense to create a sort of boolean which isn't in the set { true, false }, then it doesn't make sense to create a sort of integer which isn't in the set { ..., -2, -1, 0, 1, 2, ... }). And maybe it doesn't, but this isn't the only reason for subclassing. Another reason for subclassing is to create items which can act like existing objects, but which have some additional behavior.
And indeed, for int, it is possible to have subclasses which have new instances whose values are in the set {..., -2, -1, 0, 1, 2, ...}. Indeed, it is possible to have multiple instances of int itself whose value is, say, 1000:
500+500 is 500+500 False
The same is not true for bool: There are only two instances of the type, not just two equivalence classes of equal values:
(4>5) is (3>9) True
So bool guarantees: a) there are only two distinct values, and b) there are only two different objects representing these values. It is property b) which prohibits subclassing.
Regards, Martin
- Previous message: [Python-Dev] bool does not want to be subclassed?
- Next message: [Python-Dev] bool does not want to be subclassed?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]