Diamond inheritance with str

Lulu of the Lotus-Eaters mertz at gnosis.cx
Mon Jun 16 22:21:15 CEST 2003


Patrick Earl <patrick at cs.ualberta.ca> wrote previously:
|>>> class A(str): pass
|...
|>>> class B(str): pass
|...
|>>> class C(A,B): pass
|...
|Traceback (most recent call last):
|  File "<stdin>", line 1, in ?
|TypeError: multiple bases have instance lay-out conflict

Likewise:

  >>> class A(tuple): pass
  ...
  >>> class B(tuple): pass
  ...
  >>> class C(A,B): pass
  ...
  Traceback (most recent call last):
    File "<stdin>", line 1, in ?
  TypeError: multiple bases have instance lay-out conflict

I imagine that you could do some clever checks in a metaclass (as
usual), but it feels to me also like that shouldn't be necessary.

--
---[ to our friends at TLAs (spread the word) ]--------------------------
Echelon North Korea Nazi cracking spy smuggle Columbia fissionable Stego
White Water strategic Clinton Delta Force militia TEMPEST Libya Mossad
---[ Postmodern Enterprises <mertz at gnosis.cx> ]--------------------------






More information about the Python-list mailing list