以下不会引发: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
	提交
		取消
	