Python Forum
Python dynamic inheritance ?
Thread Rating:
  • 1 Vote(s) - 4 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Python dynamic inheritance ?
#1
ToggleWidgetClass = object

class SpecificToggleWdidgetClass(ToggleWidgetClass):
    def __init__(self, **kwargs):
        pass


def SpecificToggleWidget(var_ToggleWidgetClass = gtk.ToggleButton, **kwargs):
    global ToggleWidgetClass
    ToggleWidgetClass = var_ToggleWidgetClass

    return SpecificToggleWdidgetClass(**kwargs)
my problem is SpecificToggleWidgetClass not inheritancing again so it not changing when ToggleWidgetClass changed. is it impossible ?
Reply
#2
You want a class factory?
class SomeBaseClass(object):
    def say_hello(self):
        print("Hi.")


class SomeOtherBaseClass(object):
    def say_hello(self):
        print("Yo.")


def class_factory(BaseClass):
    class SpecificClass(BaseClass):
        def __init__(self, *args, **kwargs):
            super(SpecificClass, self).__init__(*args, **kwargs)
    return SpecificClass
        

one = class_factory(SomeBaseClass)()
two = class_factory(SomeOtherBaseClass)()

for thing in (one,two):
    thing.say_hello()
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  dynamic object creation using python gary 7 1,200 Oct-15-2022, 01:35 PM
Last Post: Larz60+
  Dynamic File Name to a shared folder with open command in python sjcsvatt 9 5,879 Jan-07-2022, 04:55 PM
Last Post: bowlofred
  Inheritance vs Instantiation for Python classes mr_byte31 7 2,789 Oct-14-2021, 12:58 PM
Last Post: mr_byte31
  Dynamic Printing With Python Terminal MrTim 2 2,824 Jul-06-2021, 04:00 PM
Last Post: MrTim
  Use dynamic variable from parallel running python script Sicksym 0 1,823 May-15-2020, 02:52 PM
Last Post: Sicksym
  XlsxWriter and Python inheritance aquerci 1 2,465 May-05-2020, 09:36 AM
Last Post: buran
  How inheritance works in Python ARV 1 1,802 Oct-03-2019, 03:06 PM
Last Post: Larz60+
  Python 3 dynamic import follies volcano63 0 3,213 May-17-2017, 03:51 PM
Last Post: volcano63

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020