subclassable types

Wolfgang Maier wolfgang.maier at biologie.uni-freiburg.de
Sun Feb 24 11:23:09 EST 2013


Terry Reedy <tjreedy <at> udel.edu> writes:

> 
> On 2/22/2013 4:35 AM, Wolfgang Maier wrote:
> > Dear all,
> > I am wondering what the rules are that determine whether a built-in type is
> > subclassable or not.
> > As examples, why can you base your classes on int or set,
> > but not on bool or range?
> > Also: can you use introspection to find out whether a type is valid as a
> > base type?
> 
> You are not the first to ask about this. I opened a doc issue.
> http://bugs.python.org/issue17279
> 

Thanks, Terry,
using the __flags__ & (1 << 10) trick from Daniel, I did something similar to
what you just added to the doc issue.
The complete list of types classes that *cannot* be subclassed is:

<class 'builtin_function_or_method'>
<class 'code'>
<class 'frame'>
<class 'function'>
<class 'generator'>
<class 'getset_descriptor'>
<class 'function'>
<class 'mappingproxy'>
<class 'member_descriptor'>
<class 'method'>
<class 'traceback'>
<class 'range'>
<class 'memoryview'>
<class 'slice'>
<class 'bool'>

of these range, memoryview, slice and bool are the only ones in builtins.

Just thought it might be interesting.




More information about the Python-list mailing list