I know this suggestion is withdrawn and the thread all but finished, but 
for completion, I'd like to answer one of Chris' questions:

On Fri, Nov 12, 2021 at 04:48:58AM +1100, Chris Angelico wrote:

> I'll have to get someone else to confirm, but I believe that str, int,
> etc were functions for a lot of Python's history.

I don't know if the first eleven years counts as "a lot" of Python's 
history (it's about 1/3rd of Python's existence at this point), but in 
Python 1.x and some of 2.x, str, int, float, list etc were all actual 
functions and couldn't be subclassed:


    [steve@ando ~]$ python1.5
    Python 1.5.2 (#1, Aug 27 2012, 09:09:18)  [GCC 4.1.2 20080704 (Red 
    Hat 4.1.2-52)] on linux2
    Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
    >>>
    >>> class MyString(str): pass
    ... 
    Traceback (innermost last):
      File "<stdin>", line 1, in ?
    TypeError: base is not a class object
    >>>
    >>> type(str)
    <type 'builtin_function_or_method'>


There were two distinct object heirarchies. Builtin *types* str, int ... 
were different kinds of objects to the classes and instances you created 
with the `class` keyword.


    >>> type(type('a'))
    <type 'type'>
    >>>
    >>> class C: pass
    ... 
    >>> type(C)
    <type 'class'>


It wasn't until Python 2.2 that builtin types and classes were unified, 
becoming the same thing; the functions str, int, etc became classes; and 
every object in Python was consolidated into a single heirarchy with 
`object` as the root.

https://www.python.org/download/releases/2.2.3/descrintro/


-- 
Steve
_______________________________________________
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/G2TYMDMIKVOZG2355OAFCTMK5AXGAIQN/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to