proposal: give delattr ability to ignore missing attribute

Gary Wilson gary.wilson at gmail.com
Tue Jun 10 17:06:01 CEST 2008


I would like to propose that functionality be added to delattr to
handle the case when the attribute does not exist.

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



More information about the Python-list mailing list