def is_weakreferable(object_):
    """
    Returns whether the given object is weakreferable.
    
    Parameters
    ----------
    object_ : `Any`
        The object to check.
    
    Returns
    -------
    is_weakreferable : `bool`
    """
    slots = getattr(type(object_), '__slots__', None)
    if (slots is not None) and ('__weakref__' in slots):
        return True
    
    if hasattr(object_, '__dict__'):
        return True
    
    return False