__delete__¶
Description¶
Called to delete the attribute on an instance instance of the owner class.
Syntax¶
object. __delete__(self, instance)
- self
- Required. Instance of the class, passed automatically on call.
- instance
- Required. Instance is the instance that the attribute was accessed through, or None when the attribute is accessed through the owner.
Remarks¶
The following method only apply to new-style classes.
The following methods only apply when an instance of the class containing the method (a so-called descriptor class) appears in an owner class (the descriptor must be in either the owner’s class dictionary or in the class dictionary for one of its parents).
This method should delete attribute value if found or raise an AttributeError exception otherwise.
Example¶
# this is our descriptor object
class Bar(object):
def __init__(self):
self.value = ''
def __get__(self, instance, owner):
print "returned from descriptor object"
return self.value
def __set__(self, instance, value):
print "set in descriptor object"
self.value = value
def __delete__(self, instance):
print "deleted in descriptor object"
del self.value
class Foo(object):
bar = Bar()
f = Foo()
f.bar = 10
print f.bar
del f.bar
set in descriptor object
returned from descriptor object
10
deleted in descriptor object