def METHOD_NAME(obj, key):
    value = getattr(self, key)
    if callable(value):
        value = value(**kwargs)
    self.__validate_attribute_type(key, value)
    if issubclass(
            value.__class__,
            list) or issubclass(
            value.__class__,
            UserList):
        obj[key] = [
            self.__transform_value(
                key, v, **kwargs) for v in value]
    else:
        obj[key] = self.__transform_value(key, value, **kwargs)
    return obj