On Thu, Dec 04, 2003 at 08:29:20PM -0800, Dylan Reinhardt wrote:
This idiom is most often used in the cases where different objects may support similar interfaces. Instead of checking object type, you can just *try* using the interface you expect, ex:
---- for obj in context.objectValues() try: print obj.foo() except: pass return printed ----
Hey now, let's not get the guy started off with bare excepts. It's generally better to catch only the exceptions you anticipate. for obj in context.objectValues() try: print obj.foo() except AttributeError: pass return printed You don't want your script to hide UnexpectedDisastrousExceptionThatRuinsEverything ;-) This is also discussed in the "easier-to-ask-forgiveness-than-permission" section of the python cookbook. -- Paul Winkler http://www.slinkp.com Look! Up in the sky! It's RASPUTIN HYPE GUNDAM! (random hero from isometric.spaceninja.com)