def first_of(obj, *attrs):
    """
    :param obj:
    :param attrs: a list of strings
    :return: the first truthy attribute of obj, calling it as a function if necessary.
    """
    for attr in attrs:
        r = resolve(obj, attr)
        if r:
            return r