Can I make a class inherit a class "in-program" in Python?
heres what i have so far:
base = list(cls.__bases__)
base.insert(0, ClassToAdd )
base = tuple( base )
cls = type( cls.__name__, base, dict(cls.__dict__) )
                Here is an example, using Greg Hewgill's suggestion:
class Foo(object):
    def beep(self):
        print('Hi')
class Bar(object):
    x = 1  
bar = Bar()
bar.beep()
# AttributeError: 'Bar' object has no attribute 'beep'
Bar = type('Bar', (Foo,object), Bar.__dict__.copy())
bar.__class__ = Bar
bar.beep()
# 'Hi'
                        Yes, the type() built-in function has a three argument form that can do this:
type(name, bases, dict)
Return a new type object. This is essentially a dynamic form of the
classstatement. The name string is the class name and becomes the__name__attribute; the bases tuple itemizes the base classes and becomes the__bases__attribute; and the dict dictionary is the namespace containing definitions for class body and becomes the__dict__attribute.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With