proposal: give delattr ability to ignore missing attribute
Lie
Lie.1296 at gmail.com
Tue Jun 10 11:55:42 EDT 2008
On Jun 10, 10:06 pm, Gary Wilson <gary.wil... at gmail.com> wrote:
> 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
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
More information about the Python-list
mailing list