以下不會(huì)引發(fā):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()這是一個(gè)已知問題嗎?我能做些什么來修復(fù)它?我需要從看起來完全像列表的東西繼承并創(chuàng)建一個(gè)抽象繼承者。謝謝你。
1 回答

翻過高山走不出你
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊
我認(rèn)為這里的問題是你不應(yīng)該直接從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)
結(jié)果:
foo
[10]
添加回答
舉報(bào)
0/150
提交
取消