Change language

object .__ delete__ in Python

| |
Allows you to define behavior when deleting a handle.

object .__ delete __ (self, instance)

-> None

self - Reference to the instance.

instance - Instance of the descriptor owner class. 

One of the methods for implementing the descriptor protocol . Allows you to define behavior when attempting to delete an owner-class attribute pointing to a descriptor.

  class MyDescriptor (object): 
"" "This is the class of the descriptor." ""

value = ’initial’

def __get __ (self, instance, owner):
# This often returns the value stored in the instance.
return self.value

def __delete __ (self, instance):
# Often deletes the value stored in instance.
self.value = ’erased’

class MyOwner (object):
"" "This is the class that owns the descriptors." ""

field1 = MyDescriptor ()
field2 = MyDescriptor ()

my_owner = MyOwner ()
my_owner .field1 # initial
del my_owner.field1
my_owner.field1 # erased