[Python-Dev] Unifying Long Integers and Integers: baseint
Guido van Rossum
guido at python.org
Thu Aug 12 16:44:05 CEST 2004
> This is why "integer" is a better name than "baseinteger".
> For now it can be the common supertype of int and long.
> In the future, it can be the name of the single integer
No, that will be int, of course!
Like 'basestring', 'baseinteger' is intentionally cumbersome, because
it is only the base class of all *built-in* integral types. Note that
UserString is *not* subclassing basestring, and likewise if you wrote
an integer-like class from scratch it should not inherit from
baseinteger. Code testing for these types is interested in knowing
whether something is a member of one of the *built-in* types, which is
often needed because other built-in operations (e.g. many extension
modules) only handle the built-in types.
If you want to test for integer-like or string-like behavior, you
won't be able to use isinstance(), but instead you'll have to check
for the presence of certain methods.
I know this is not easy in the case of integers, but I don't want to
start requiring inheritance from a marker base type now. Python is
built on duck typing. (Google for it.)
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-Dev