def listattrs(x):
    """Get all instance and class attributes for an object
    
    Get all instance and class attributes for an object except those that start
    with "__" (double underscore).
    
    __dict__ of an object only reports the instance attributes while dir() 
    reports all of the attributes of an object including private ones.
    
    Callable attrs are filtered out.
    
    Args:
        x (object): Some object
    
    Returns:
        list str: List of non-callable non-private attributes of object x
    """
    return [attr for attr in dir(x) if not attr.startswith("__") and not callable(getattr(x, attr))]