Nick Coghlan wrote: > Carl Banks wrote: > > What if the condition you wanted to test wasn't the same as the thing > > you want to save? In other words, how would you convert this? > > > > . where: > > . m = something() > > . if m > 20: > > . do_something_with(m) > > Yeah, this problem eventually occurred to me as well. However, I think a little > utility function can help solve it: > > def test(val, condition): > if condition(val): > return val > else: > return None > > if test(something(), lambda x: x < 10) as m: > print "Case 1:", m > elif test(something(), lambda x: x > 20) as m: > print "Case 2:", m > else: > print "No case at all!"
I'm sorry, I really can't agree that this helper function "solves" it. IMO, it's a workaround, not a solution. And, if I may be frank, it's a pretty ugly one. Not only that, but it still doesn't work. What if the object itself is false? -- CARL BANKS -- http://mail.python.org/mailman/listinfo/python-list