def __init__(self, length, op, abject, target, seq=[]):
        """Arguments:
        length - the number of items wanted.
        op - a comparison operator. op(a, b) should return true if a is 
        better than b, and false if b is best. If a and b are equally good,
        then either true or false will work, with differing effects.
        abject - a value such that op(x, abject) will return false for any
        values of x that you want to catch.
        target - a value such that op(target, x) will return false for 
        any value of x.
        seq - optional iterable to initialise the heap.
        """
        self.abject = abject
        self.target = target
        self.op = op
        self.length = length
        self.heap = [abject] * length + [target]
        if seq:
            self.test(*seq)
Arguments:
        length - the number of items wanted.
        op - a comparison operator. op(a, b) should return true if a is 
        better than b, and false if b is best. If a and b are equally good,
        then either true or false will work, with differing effects.
        abject - a value such that op(x, abject) will return false for any
        values of x that you want to catch.
        target - a value such that op(target, x) will return false for 
        any value of x.
        seq - optional iterable to initialise the heap.
        
recipes/Python/299058_winnowing_data_with_a_heap/recipe-299058.py