-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]

x電話をかけないときに内容を返送できるようにしたいx.content

4

1 に答える 1

2

サブクラス化しようとしていますが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 に答える