以下不会引发:from abc import ABCMeta, abstractmethodclass Test(list, metaclass=ABCMeta): @abstractmethod def test(self): passtest = Test()虽然这样做:from abc import ABCMeta, abstractmethodclass Test(metaclass=ABCMeta): @abstractmethod def test(self): passtest = Test()这是一个已知问题吗?我能做些什么来修复它?我需要从看起来完全像列表的东西继承并创建一个抽象继承者。谢谢你。
1 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
我认为这里的问题是你不应该直接从list. 有一些包装类可以在collections. 在这种情况下UserList:
from abc import ABCMeta, abstractmethod
from collections import UserList
class Test(UserList, metaclass=ABCMeta):
@abstractmethod
def test(self):
pass
test = Test()
在这里,你有活生生的例子来自:
class Test1(Test):
def test(self):
print("foo")
test = Test1()
test.append(10)
test.test()
print(test)
结果:
foo
[10]
添加回答
举报
0/150
提交
取消