En Wed, 07 Mar 2007 18:48:18 -0300, Arnaud Delobelle
<[EMAIL PROTECTED]> escribió:
> 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.
Hmmm, functions are cheap - nobody is charging you $2 for each "def"
statement you write, I presume :)
A bit more serious, if those "chunks of code" are processing its input and
returning something that you further process... they *are* functions. If
you don't want them to be publicly available, use inner functions:
def xxxfactory(x):
def f1(x):
...
def f2(x):
...
def f3(x):
...
for f in f1,f2,f3:
try:
return f(x)
... same as above...
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list