__setslice_和从列表派生的类

根据文档,__setslice __方法已经 自Python 2.0以来已弃用. 但是,如果我是从 内置列表类,我发现我真的不能忽略__setslice __. 看看这个片段: ------------------------------------------------------------------------------------ - - [100,77,66,12] ------------------------------------------------------------------------------------ - - 如果我分配给v [1:3],它将通过__setslice __分配,但是如果我分配给 v [1:3:1]它通过__setitem__派遣. 文档指出,如果 存在__setslice__方法将使用它,但是如果不是 现在将合成一个切片,并将使用__setitem__ 只. 由于内置列表类提供__setslice __ 方法,这意味着从列表中得出的任何类仍必须 为这种表面上贬值的方法做准备. 有一个解决方法,即包括此方法: def __setslice __(self,i,j,seq): self .__ setItem __(切片(i,j),seq) 这样,我需要在__setitem__中包含的任何自定义代码都不 在__setslice __中重复. 但是我只是出于好奇心 我会问这里的人们是否有其他方法? 也许 像没有__setslice __的" noslicelist"类之类的东西, 然后,标准列表类将成为肾上飞机的子类 使用__setslice__的方法构成兼容性. 这样我可以 我本人子类的鼻序主义者,不必担心它. dave

# 回答1

Dave Opstad写道: 我不这么认为; 至少这是我过去一直做的. 也许您应该提交功能请求? 一定是时候摆脱了 __setslice__,如果不是现在,则可能是Python 3.0. - - 迈克尔·霍夫曼
# 回答2

在文章中 迈克尔·霍夫曼(Michael Hoffman)写道: 我很高兴提交功能请求,一旦我弄清楚如何做! dave
# 回答3

Dave Opstad写道:http://sourceforge.net/projects/python/ 关注RFE链接. - - 迈克尔·霍夫曼

标签: python

添加新评论