【发布时间】:2026-01-23 07:40:01
【问题描述】:
我有一个具有整数值参数列表的类。 我必须实现自定义 lshift 方法,该方法将添加到列表中(我必须为我的用例覆盖 lshift 方法)。这是自定义 lshift 方法,因此它没有任何与 bitarrays 相关的内容,但只能与列表中的 integers 一起使用(将其添加到列表中)并且它接收参数 element 。我应该在没有 import 额外的 python 类的情况下做到这一点。我还为这个功能定义了测试,所以你可以看到结果应该是什么样子。 (我已经为 add,len 和 iter 实现了自定义方法,但我认为这无关紧要)
class CustomShift:
def __init__(self, iterator=None):
self.iterator = iterator
if (self.iterator):
self.iterator = list(dict.fromkeys(self.iterator))
def __lshift__(self, element):
"""Add an element to the list.
>>> shiftInstance = CustomShift()
>>> _ = shiftInstance << 4
>>> sorted(shiftInstance << 5 << 6 << 4)
[4, 5, 6]
"""
if self.iterator is None:
self.iterator = []
if element:
self.iterator.append(element)
if __name__ == "__main__":
import doctest
from pprint import pprint
doctest.testmod()
前两个测试通过,但第三个失败!
TypeError: unsupported operand type(s) for <<: 'NoneType' and 'int'
不确定我做错了什么,任何提示将不胜感激。 提前致谢
【问题讨论】:
标签: python python-3.x list class doctest