Yield private properties of an object.

    A private property is defined as one that has a single underscore
    (:code:`_`) before its name

    :param obj: Object
    :type  obj: object

    :returns: iterator

def private_props(obj):
    """
    Yield private properties of an object.

    A private property is defined as one that has a single underscore
    (:code:`_`) before its name

    :param obj: Object
    :type  obj: object

    :returns: iterator
    """
    # Get private properties but NOT magic methods
    props = [item for item in dir(obj)]
    priv_props = [_PRIVATE_PROP_REGEXP.match(item) for item in props]
    call_props = [callable(getattr(obj, item)) for item in props]
    iobj = zip(props, priv_props, call_props)
    for obj_name in [prop for prop, priv, call in iobj if priv and (not call)]:
        yield obj_name