The del statement is used to delete things. It has a few disti | Python etc
The del statement is used to delete things. It has a few distinct behaviors, depending on what is the specified target.
If a variable specified, it will be removed from the scope in which it is defined:
a = []
del a
a
# NameError: name 'a' is not defined
If the target has a form target[index], target.__delitem__(index) will be called. It is defined for built-in collections to remove items from them:
a = [1, 2, 3]
del a[0]
a # [2, 3]
d = {1: 2, 3: 4}
del d[3]
d # {1: 2}
Slices are also supported:
a = [1, 2, 3, 4]
del a[2:]
a # [1, 2]
And the last behavior, if target.attr is specified, target.__delattr__(attr) will be called. It is defined for object:
class A:
b = 'default'
a = A()
a.b = 'overwritten'
a.b # 'overwritten'
del a.b
a.b # 'default'
del a.b # AttributeError