3
我在Python的输入系统和__slots__
之间发生冲突。这是一个小的可重现的例子。__slots__与泛型类中的类变量冲突
from typing import TypeVar, Generic, Sequence
T = TypeVar("T")
class TestGeneric(Sequence, Generic[T]):
__slots__ = ("test",)
def __init__(self, test: T):
self.test = [test]
def __iter__(self):
return iter(self.test)
def __len__(self):
return len(self.test)
def __contains__(self, item):
return item in self.test
def __getitem__(self, _):
return self.test[0]
现在每当我尝试指定内容类型时,例如
V = TestGeneric[int]
我得到
ValueError: 'test' in __slots__ conflicts with class variable
我在课堂上使用Generics
无缝隙很多,所以我觉得这个错误已被链接到__slots__
。此外,如果您删除__slots__
我认为这是一个错误,但想确定。我已经提交了一份报告。 –