On Jun 10, 4:55 pm, Lie <[EMAIL PROTECTED]> wrote: > On Jun 10, 10:06 pm, Gary Wilson <[EMAIL PROTECTED]> wrote: > > > > > I would like to propose that functionality be added to delattr to > > handle the case when the attribute does not exist. >
I've never once needed that functionality. In fact I very rarely use delattr at all. I don't think there is a compelling enough use case for adding this to Python. Michael Foord http://www.ironpythoninaction.com/ > > First off, getattr handles this nicely with the default parameter: > > > value = getattr(obj, 'foo', False) > > > instead of: > > > try: > > value = getattr(obj, 'foo') > > except AttributeError: > > value = False > > > or: > > > if hasattr(obj, 'foo'): > > value = getattr(obj, 'foo') > > else: > > value = False > > > And I think it makes sense to have something similar for delattr (name > > the argument as you wish): > > > delattr(obj, 'foo', allow_missing=True) > > > instead of: > > > try: > > delattr(obj, 'foo') > > except AttributeError: > > pass > > > or: > > > try: > > del obj.foo > > except AttributeError: > > pass > > > or: > > > if hasattr(obj, 'foo') > > delattr(obj, 'foo') > > > For backwards compatibility, allow_missing would default to False. > > > Gary > > That doesn't need to be implemented internally, you could do it > yourself in python. > > def my_delattr(obj, attr): > try: > delattr(obj, attr) > except AttributeError: > pass > def my_getattr(obj, attr, default): > try: > return getattr(obj, attr) > except AttributeError: > return default -- http://mail.python.org/mailman/listinfo/python-list