On Wednesday 03 June 2015 05:31, Jon Ribbens wrote: > On 2015-06-02, Dr. Bigcock <dreamingforw...@gmail.com> wrote: >> On Tuesday, June 2, 2015 at 1:49:03 PM UTC-5, Jon Ribbens wrote: >>> On 2015-06-02, Dr. Bigcock <dreamingforw...@gmail.com> wrote: >>> > It doesn't really do anything. No one uses integers as objects. >>> > (Any dissenters?) >>> >>> Yes. *Everyone* uses integers as objects. Containers such as >>> lists and dictionaries and tuples etc contain objects. If >>> integers weren't objects then you wouldn't be able to put them >>> in containers (and you'd end up with Java). >> >> Sorry. I meant "object" in the sense of OOP: something you might >> extend or make a derived class with. > > I'm not sure you get to define which properties of objects you want > not to count. > >> Your last claim, must not be true because integers were able to be >> placed in objects before the type/class unification with v2.6, I >> believe. > > Unless I'm misremembering, before that they were still objects, > just not quite the same kind of objects as pure-Python ones.
Correct. It was version 2.2, not 2.6, that unified built-in types with classes. Prior to that, Python had two distinct kinds of object, with separate hierarchies: Types (builtins, defined in C) +-- int +-- dict +-- str +-- list Classes (custom-made in Python using the class keyword) +-- Foo +-- Bar +-- FooBar +- FooBarBaz You could only subclass classes, not types. But *both* were kinds of objects. They were just separate, with slightly different characteristics. Starting with 2.2, the old-style classic classes still existed, for backwards compatibility, but Python introduced a single base-class for the built-in types, called it "object", and enabled subclassing from pure-Python code: Unified types/classes ("new-style classes") +-- object +-- int +-- MyInteger +-- dict +-- str +-- list +-- MyList +-- Spam Classic Classes ("old-style classes") [unchanged from above] Finally, in Python 3, the classic classes were removed, and Python now has a single unified type/class hierarchy, with "object" at the root. But regardless of whether Python had a single type hierarchy or two separate hierarchies, all values in Python were still implemented as objects. -- Steve -- https://mail.python.org/mailman/listinfo/python-list