我对你的课做了一些改动。这似乎正在工作。
一些建议:不要
type用作关键字-
type是内置函数。使用
self.前缀访问Python实例变量。所以用
self.<variablename>。
class TypedList(list): def __init__(self, type): self.type = type def append(self, item): if not isinstance(item, self.type): raise TypeError, 'item is not of type %s' % self.type super(TypedList, self).append(item) #append the item to itself (the list)from types import *tl = TypedList(StringType)tl.append('abc')tl.append(None)Traceback (most recent call last): File "<pyshell#25>", line 1, in <module> tl.append(None) File "<pyshell#22>", line 7, in append raise TypeError, 'item is not of type %s' % self.typeTypeError: item is not of type <type 'str'>


