为了账号安全,请及时绑定邮箱和手机立即绑定

Python 3.7:继承列表,忽略抽象

Python 3.7:继承列表,忽略抽象

红颜莎娜 2021-09-02 15:01:49
以下不会引发: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]


查看完整回答
反对 回复 2021-09-02
  • 1 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信