我想要一个 python 列表,它在外部将自身表示为其内部列表项的平均值,但在其他方面则表现为列表。它应该提高一个TypeError
如果添加的项目无法转换为浮点数。
我坚持的部分是提高TypeError
。对于通过任何列表方法添加的无效项目,应该引发它,例如.append
, .extend
, +=
、按切片设置等
有没有办法拦截添加到列表中的新项目并验证它们?
我尝试重新验证整个列表__getattribute__
,但是当它被调用时,我只能访问列表的旧版本,而且它甚至不会被调用初始化,像这样的运算符+=
,或者像这样的切片mylist[0] = 5
.
有任何想法吗?
继承自可变序列并实现它所需的方法以及任何其他超出序列范围的方法——比如此处的运算符。这将允许您更改类似列表功能的运算符操作,同时自动生成迭代器和包含功能。
如果你想检查切片顺便说一句你需要做isinstance(key, slice)
在你的__getitem__
(和/或__setitem__
) 方法。请注意,像 myList[0] 这样的单个索引不是切片请求,而是单个索引,而 myList[:0] 是实际的切片请求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)