Lars <gemer...@gmail.com> added the comment:

in my project i need to be able to let the user dynamically make and
remove inheritance relationships between classes and in my testing i
think i have run into this issue assigning to __bases__. the

class object(object):
    pass

trick seems to work, but i can't really oversee the consequenses. I also
saw another variation which might be the same issue:

    A= type("A", (object,), {'one': 1})
    B= type("B", (object,), {'two': 2})
    C= type("C", (object,), {'three': 3})

    A = type("A",(A,B),{})
    
    print dir(A)
    print A.__bases__
    print '-----------------------------------'
    A.__bases__ = (B,C)
    print dir(A)
    print A.__bases__
    print '-----------------------------------'

no exceptions, but the second dir(A) shows that A has lost its attribute
'one'

if the class object(object) trick is not safe, is there a way to get the
dynamic inheritance behaviour in another way, e.g. through metaclasses?

----------
nosy: +farcat

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue672115>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to