截取Python列表.追加,列表.删除

我有一个列表作为类的属性.我需要能够拦截向列表添加/删除对象的任何操作,这样我才能在类的其他属性上执行清理.
目前,我使用可怕的__将列表设置为"私有",然后使用一系列访问器函数进行迭代、添加/删除等操作,而不提供对列表的真正访问.因此,这门课看起来像是笨拙的.
有没有一种更毒蛇般的方式来做这件事?可能是通过子分类列表?这将如何影响列表操作的性能?
每次我在谷歌上搜索这个,我得到的都是关于python邮件列表的结果.
谢谢,
/乔恩

# 回答1


好的,看来我只能列出子类了.我想我可以和另一个班级住在一起(我想这对组织更好).
有什么方法可以覆盖del关键字吗?这样,当我执行del mylistsubClass[index]时,我可以执行清理?
同样,List子类在我覆盖/不覆盖的操作上执行速度会变慢吗?在这一点上,我并不太担心性能,但这是一个模拟引擎,这可能意味着长时间运行的进程,所以减少几个小时可能是有益的.
# 回答2


对于del list[x],您可以覆盖__delItem__(X),对于del list.name,您可以覆盖__delattr__(Name),对于删除切片,您可以覆盖__del__Slice__.

标签: python

添加新评论