在isinstance()ch中作为列表传递的MutableSequence

2024-06-16 09:42:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我基于collections.MutableSequence构建了一个类似于自定义列表的类:

class MyList(collections.MutableSequence):
    etc... behave mostly like a list...

value = MyList([1,2,3])

第三方数据处理前运行检查表:

^{pr2}$

我不希望在将自定义列表类对象传递给第三方库之前将其转换为内置列表。在

有没有一种优雅的方法可以使MyList的实例看起来像是isinstance(MyList([1,2,3]), list)检查中的list的实例?在


Tags: 实例列表valueetccollectionslistclasslike
1条回答
网友
1楼 · 发布于 2024-06-16 09:42:04

不,您的类实例不从list继承就无法通过该测试。你的子类list才能通过测试。在

您可以尝试从MutableSequencelist继承;任何不是由您的类或MutableSequence实现的方法或属性都将在list上查找,因此您可能会得到您不希望这样做的额外方法,这些方法的行为可能会出乎意料:

class MyList(collections.MutableSequence, list):

您也可以monkeypatch check_correct_type()函数,前提是它确实是这样一个独立的函数:

^{pr2}$

相关问题 更多 >