<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_filters(self, filters=None):
 """Apply filtering to all messages received by this Bus. All messages that match at least one filter are returned. If `filters` is `None` or a zero length sequence, all messages are matched. Calling without passing any filters will reset the applied filters to `None`. :param filters: A iterable of dictionaries each containing a "can_id", a "can_mask", and an optional "extended" key. A filter matches, when ``<received_can_id> & can_mask == can_id & can_mask``. If ``extended`` is set as well, it only matches messages where ``<received_is_extended> == extended``. Else it matches every messages based only on the arbitration ID and mask. """

        self._filters = filters or None
        self._apply_filters(self._filters)