delattr



>>> delattr(object, name)


object에 존재하는 속성을 제거한다.


__builtin__ module에 포함된 function 이다. 



예제에 앞서 delattr 예제를 위한 object를 다름과 같이 먼저 생성한다. 

>>> class sample:
...     def __init__(self, x):
...             self.x = x
...
>>>
>>> c = sample(1)
>>> c.x
1


예제)


기존 속성을 제거하는 경우

>>> delattr(c, 'x')
>>> getattr(c, 'x')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: sample instance has no attribute 'x'

delattr을 사용하지 않고, del c.x를 하여도 동일한 결과를 얻을 수 있다. 

>>> del c.x
>>> getattr(c, 'x')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: sample instance has no attribute 'x'


기존에 존재하지 않는 속성을 제거하려 하는 경우

>>> delattr(c, 'z')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: sample instance has no attribute 'z'


참고>


setattr() - object의 속성(attribute) 값을 설정하는 함수

getattr() - object의 속성(attribute) 값을 확인하는 함수

delattr() - object의 속성(attribute)을 제거하는 함수

hasattr() - object의 속성(attribute) 존재를 확인하는 함수




>>> help(delattr)


Help on built-in function delattr in module __builtin__:


delattr(...)

    delattr(object, name)


    Delete a named attribute on an object; delattr(x, 'y') is equivalent to

    ``del x.y''.