-1
>>> class StrictList(list):
...     def __init__(self,content=None):
...         if not content:
...             self.content = []
...             self.type = None
...         else:
...             content = list(content)
...             cc = content[0].__class__
...             if l_any(lambda x: x.__class__ != cc, content):
...                 raise Exception("List items must be of the same type")
...             else:
...                 self.content = content
...                 self.type = cc
... 
>>> x = StrictList([1,2,3,4,5])
>>> x
[]
>>> x.content
[1, 2, 3, 4, 5]

我希望能够在调用xnot时返回内容x.content

4

1 回答 1

2

您正在尝试子类list化,但从不调用 list__init__方法。添加这个:

super(StrictList, self).__init__(content)

将项目添加到自己。无需分配给self.content

>>> class StrictList(list):
...     def __init__(self,content=None):
...         super(StrictList, self).__init__(content)
... 
>>> s = StrictList([1, 2, 3])
>>> len(s)
3
>>> s[0]
1
于 2013-01-13T22:33:50.907 回答