Chris Kaynor wrote:
On Wed, May 2, 2012 at 12:51 PM, J. Mwebaze <jmweb...@gmail.com> wrote:
I have multiple objects, where any of them can serve my purpose.. However
some objects might not have some dependencies. I can not tell before hand if
the all the dependencies exsit. What i want to is begin processing from the
1st object, if no exception is raised, i am done.. if an exception is
raised, the next object is tried, etc Something like
objs = [... ]
try:
obj = objs[0]
obj.make()
except Exception, e:
try:
obj = objs[1]
obj.make()
except Exception, e:
try:
obj = objs[2]
obj.make()
except Exception, e:
continue
The problem is the length of the list of objs is variable... How can i do
this?
for obj in objs:
try:
obj.make()
except Exception:
continue
else:
break
else:
raise RuntimeError('No object worked')
For the record, an alternative solution without try block:
candidates = [obj for obj in objs if hasattr(obj, 'make') and
callable(obj.make)]
if candidates:
candidates[0].make()
JM
--
http://mail.python.org/mailman/listinfo/python-list