On 2007-06-15, Ping <[EMAIL PROTECTED]> wrote: >> >> sum(1 for i in a_list if a_callable(i)) >> >> -- >> Carsten Haesehttp://informixdb.sourceforge.net > > This works nicely but not very intuitive or readable to me. > > First of all, the generator expression makes sense only to > trained eyes. Secondly, using sum(1 ...) to mean count() > isn't very intuitive either. > > I would still prefer an expression like a_list.count(a_callable), > which is short, clean, and easy to understand. :) However, > it does produce ambiguities if a_list is a list of callables. > Should the count() method match values or check return values > of a_callable? There are several possible designs but I'm not > sure which is better.
If you want to check return values, I would thing your callable argument should make the call. Something like: def returns_less_than_three(func): return func() < 3 ls.count(returns_less_than_three) Checking the return values implictly, would make it vey hard if not impossible to check against the callables themselves if you want to. -- Antoon Pardon -- http://mail.python.org/mailman/listinfo/python-list