<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def setattr_at_path( obj, path, val ):
 """ Traverses a set of nested attributes to the value on an object :param mixed obj: The object to set the attribute on :param tuple path: The path to the attribute on the object :param mixed val: The value at the attribute :rtype None: """

    target = obj
    last_attr = path[-1]
    for attr in path[0:-1]:
        try:
            if type(attr) in ( str, unicode ) and target and hasattr( target, attr ):
                target = getattr( target, attr )
            else:
                target = target[attr]
        except:
            pass
    # Ensures we set by reference
    try:
        setattr( target, last_attr, val )
    except:
        target[last_attr] = val