C'est ainsi que vous pouvez créer dynamiquement une classe nommée Child
dans votre code, en supposant que Parent
existe déjà... même si vous n'avez pas de Parent
classe, vous pouvez utiliser object
...
Le code ci-dessous définit __init__()
puis l'associe à la classe.
>>> child_name = "Child"
>>> child_parents = (Parent,)
>>> child body = """
def __init__(self, arg1):
# Initialization for the Child class
self.foo = do_something(arg1)
"""
>>> child_dict = {}
>>> exec(child_body, globals(), child_dict)
>>> childobj = type(child_name, child_parents, child_dict)
>>> childobj.__name__
'Child'
>>> childobj.__bases__
(<type 'object'>,)
>>> # Instantiating the new Child object...
>>> childinst = childobj()
>>> childinst
<__main__.Child object at 0x1c91710>
>>>