@asyncio.coroutine<EOL><INDENT>def bind(self, exchange, routing_key, *, arguments=None):<DEDENT>
if self.deleted:<EOL><INDENT>raise Deleted("<STR_LIT>".format(self.name))<EOL><DEDENT>if not exchange:<EOL><INDENT>raise InvalidExchangeName("<STR_LIT>".format(self.name))<EOL><DEDENT>self.sender.send_QueueBind(self.name, exchange.name, routing_key, arguments or {})<EOL>yield from self.synchroniser.wait(spec.QueueBindOK)<EOL>b = QueueBinding(self.reader, self.sender, self.synchroniser, self, exchange, routing_key)<EOL>self.reader.ready()<EOL>return b<EOL>
Bind a queue to an exchange, with the supplied routing key.

This action 'subscribes' the queue to the routing key; the precise meaning of this
varies with the exchange type.

This method is a :ref:`coroutine <coroutine>`.

:param asynqp.Exchange exchange: the :class:`Exchange` to bind to
:param str routing_key: the routing key under which to bind
:keyword dict arguments: Table of optional parameters for extensions to the AMQP protocol. See :ref:`extensions`.

:return: The new :class:`QueueBinding` object