【发布时间】:2012-03-23 14:33:13
【问题描述】:
我正在尝试从 collections.MutableSequence 继承:
class myList(MutableSequence):
def __new__(cls,*kwargs):
obj=MutableSequence.__new__(cls,*kwargs)
return obj
我得到错误:
>>>a=myList()
>>>TypeError: Can't instantiate abstract class ContactMapList with abstract methods __delitem__, __getitem__, __len__, __setitem__, insert
当我以同样的方式直接从内置列表类派生我的类时,我没有遇到任何错误:
class myList(list):
def __new__(cls,*kwargs):
obj=list.__new__(cls,*kwargs)
return obj
我试图寻找为 myList(MutableSequence) 定义构造函数的方法,但没有运气:(
【问题讨论】:
-
答案在问题中:
Can't instantiate abstract class. -
请参阅this 答案,了解如何从 MutableSequence 继承的示例。
标签: python inheritance object abstract-class