[EMAIL PROTECTED] wrote: > I actually have a set of lambdas so my use will be more like:
A set of lambdas gains you nothing. >>> (lambda: a > 0) in set([lambda: a > 0]) False is probably not what you expected. So you might want to go back to strings containing expressions. Anyway, here is a way to "and" an arbitrary number of functions (they all must take the same arguments): >>> def make_and(*functions): ... def all_true(*args, **kw): ... for f in functions: ... if not f(*args, **kw): ... return False ... return True ... return all_true ... >>> abc = make_and(lambda: a > 0, lambda: b < 0, lambda: c == 0) >>> a, b, c = 1, -1, 0 >>> abc() True >>> c = 1 >>> abc() False For a set/list of lambdas/functions, you would call make_and() with a preceding star: and_all = make_and(*some_set_of_functions) > - Gosh, isn't life fun! I seem to remember that the manual clearly states otherwise :-) Peter -- http://mail.python.org/mailman/listinfo/python-list