我正在尝试这个简单的python代码:
class A:
def __init__( self ):
self.a = { 'k' : 'kk' }
def __delete__( self, key ):
del self.a[key]
Run Code Online (Sandbox Code Playgroud)
这个简单的类不起作用。
>>> a = A()
>>> del a['k']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'A' object does not support item deletion
Run Code Online (Sandbox Code Playgroud)
那么我应该如何在 python 中正确实现项目删除?感谢您的帮助。
为了实现del a['k'](即通过索引删除项目)的行为,您应该实现__delitem__魔术方法:
In [1]: class A:
...: def __init__(self):
...: self.a = {'k': 'kk' }
...: def __delitem__(self, key):
...: del self.a[key]
...:
In [2]: a = A()
In [3]: a.a
Out[3]: {'k': 'kk'}
In [4]: del a['k']
In [5]: a.a
Out[5]: {}
Run Code Online (Sandbox Code Playgroud)