# this almost works, but btree would have to return value, not 1|None

class Value:
    def __init__(self, key, value):
        self.key, self.value = key, value
    def __cmp__(self, other):
        return cmp(self.key, other.key)
    def __repr__(self): 
        return '[%s=%s]' % (self.key, self.value)

class Key:
    def __init__(self, key): self.key = key

if __name__ == '__main__':
    import btree
    tree = btree.BinaryTree()
    for (key, val) in (('bob', 1), ('ann', 2), ('cam', 3)):
        tree.insert(Value(key, val))
    print tree
    print tree.lookup(Key('cam'))    # use .val for value

