def recursive_setattr(obj, name, value): if '.' in name: parent, child = name.split('.')[0], '.'.join(name.split('.')[1:]) recursive_setattr(getattr(obj, parent), child, value) else: setattr(obj, name, value)