On Mar 7, 3:04 pm, [EMAIL PROTECTED] wrote: > On Mar 7, 2:48 pm, "Arnaud Delobelle" <[EMAIL PROTECTED]> wrote: > > > > > > > I'm not really thinking about this situation so let me clarify. Here > > is a simple concrete example, taking the following for the functions > > a,b,c I mention in my original post. > > - a=int > > - b=float > > - c=complex > > - x is a string > > This means I want to convert x to an int if possible, otherwise a > > float, otherwise a complex, otherwise raise CantDoIt. > > > I can do: > > > for f in int, float, complex: > > try: > > return f(x) > > except ValueError: > > continue > > raise CantDoIt > > > But if the three things I want to do are not callable objects but > > chunks of code this method is awkward because you have to create > > functions simply in order to be able to loop over them (this is whay I > > was talking about 'abusing loop constructs'). Besides I am not happy > > with the other two idioms I can think of. > > > -- > > Arnaud > > Wouldn't it be easier to do: > > if isinstance(x, int): > # do something > elif isinstance(x, float)t: > # do something > elif isinstance(x, complex): > # do something > else: > raise CantDoIt > > or, > > i = [int, float, complex] > for f in i: > if isinstance(x, f): > return x > else: > raise CantDoIt
I so missed the point of this. Not my day. Please ignore my post. -- http://mail.python.org/mailman/listinfo/python-list