I've a flat dict with entities. Each entity can have a parent. I'd like to recursively build each entity, considering the parent values.
Logic:
- Each entity inherits defaults from its parent (e.g.
is_mammal
) - Each entity can overwrite the defaults of its parent (e.g.
age
) - Each entity can add new attributes (e.g.
hobby
)
I'm struggling to get it done. Help is appreciated, thanks!
entities = {
'human': {
'is_mammal': True,
'age': None,
},
'man': {
'parent': 'human',
'gender': 'male',
},
'john': {
'parent': 'man',
'age': 20,
'hobby': 'football',
}
};
def get_character(key):
# ... recursive magic with entities ...
return entity
john = get_character('john')
print(john)
Expected output:
{
'is_mammal': True, # inherited from human
'gender': 'male' # inherited from man
'parent': 'man',
'age': 20, # overwritten
'hobby': 'football', # added
}