human
Complete this python program:
def get(iterable, **attrs):
assistant
#Here is the Python program you requested.

    """A helper that returns the first element in the iterable that meets
    all the traits passed in ``attrs``. This is an alternative for
    :func:`discord.utils.find`.
    When multiple attributes are specified, they are checked using
    logical AND, not logical OR. Meaning they have to meet every
    attribute passed in and not one of them.
    To have a nested attribute search (i.e. search by ``x.y``) then
    pass in ``x__y`` as the keyword argument.
    If nothing is found that matches the attributes passed, then
    ``None`` is returned.
    Examples
    Basic usage:
    .. code-block:: python
    member = discord.utils.get(message.server.members, name=\Foo\)
    Multiple attribute matching:
    .. code-block:: python
    channel = discord.utils.get(server.channels, name=\Foo\, type=ChannelType.voice)
    Nested attribute matching:
    .. code-block:: python
    channel = discord.utils.get(client.get_all_channels(), server__name=\Cool\, name=\general\)
    Parameters
    iterable
    An iterable to search through.
    \*\*attrs
    Keyword arguments that denote attributes to search with.
    """
    def predicate(elem):
        for (attr, val) in attrs.items():
            nested = attr.split('__')
            obj = elem
            for attribute in nested:
                obj = getattr(obj, attribute)
            if (obj != val):
                return False
        return True
    return find(predicate, iterable)