def is_cached(o, name):
    """Whether a cached property is already computed.

    Parameters
    ----------
    o : object
        The object the property belongs to.
    name : str
        Name of the property.

    Returns
    -------
    bool
        True iff the property is already computed.

    Examples
    --------
    >>> class MyClass(object):
    ...     @cached_property
    ...     def my_cached_property(self):
    ...         print('Computing my_cached_property...')
    ...         return 42
    ...     @cached_property
    ...     def my_second_cached_property(self):
    ...         print('Computing my_second_cached_property...')
    ...         return 51
    >>> my_object = MyClass()
    >>> my_object.my_cached_property
    Computing my_cached_property...
    42
    >>> is_cached(my_object, 'my_cached_property')
    True
    >>> is_cached(my_object, 'my_second_cached_property')
    False
    """
    return name in o.__dict__