[Python-ideas] Adding "Typed" collections/iterators to Python
Terry Reedy
tjreedy at udel.edu
Wed Dec 21 02:09:12 CET 2011
On 12/20/2011 7:09 PM, Steven D'Aprano wrote:
> Terry Reedy wrote:
>
>> 2.) there are serious dragons in
>>> how python handles complex inheritance graphs that result in
>>> "object.__new__() takes no parameters", despite not having any builtin
>>> bases and having no base class overriding __new__ or __init__
>>
>> Best not to use object as the apex of multiple inheritance.
>
> Is that possible in Python 3?
I believe the recommendation I have seen is something like this
>>> class C():
def __init__(self, *arg, **kwds): pass
>>> C(1)
<__main__.C object at 0x00000000034C0F98>
whereas
>>> object(1)
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
object(1)
TypeError: object.__new__() takes no parameters
Now, so others have posted, define A and B with super, inheriting from C
instead of object, and D with super inheriting from A and B, and all
should go well instead of crashing. But I have not tested this myself.
Same for ordinary single inheritance chain.
--
Terry Jan Reedy
More information about the Python-ideas
mailing list