G
Gary Wilson
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
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