This would be similar to 'key' argument already available for min(), max() and sorted() and would let user decide what must be considered True and what not.
Some use cases:
all(a, b, c, ... key=callable)
all(a, b, c, ... key=lambda x: isinstance(x, int))
any(a, b, c, ... key=lambda x: x < 10)
a = b = c = None
for x in foo:
if cond1:
a = 0
elif cond2:
b = 0
elif cond3:
c = 0
# meaning all cond* has been satisfied and it's ok to consider 0 a meaningful value
assert all(a, b, c, key=lambda x: x != None)
Thoughts?
--- Giampaolo