python-3.x - 序列与可变序列
问题描述
我一直Sequence
在对包括 mutable 在内的序列使用 in 类型提示list
。现在我刚刚发现还有MutableSequence
. 据我所知,Sequence
是 的超类MutableSequence
,即Sequence
包括可变的list
和不可变的tuple
,而MutableSequence
只包括前者。
两个问题:
- 这个对吗?(我很确定是这样,但我还没有找到任何明确的声明。)
- 如果是这样,是否有一个不可变的等价物
MutableSequence
,包括,例如,tuple
和str
,但不是list
?
解决方案
是的。
不——在 Python 中,您只能根据某些方法/行为的存在
Sequence
来定义接口(其中和MutableSequence
是两个示例) ;您不能根据缺少某些方法/行为来定义接口。
我建议阅读 的源代码collections.abc
,我个人认为它比文档更有启发性。
推荐阅读
- c# - 为 TreeViewItem 指定其他数据元素?
- php - 在 if 语句中使用变量时的 PHP 问题
- xslt-1.0 - XSLT1.0 跨多个节点的不同属性列表
- node.js - 无法使用 webpack 导入 aws-sdk,并且 npm 安装了 aws-sdk
- laravel - Laravel 所有请求中的附加属性
- java - 如何将图像上传到 Android Studio 中的图像滑块?
- r - 在 R data.table 中,当 args 作为命名列表传递时,对多列进行整形失败
- javascript - 无法调用javascript中对象内部定义的方法
- amazon-web-services - 在 AWS Appsync 中手动设置当前用户凭证
- android - 如何在带有活动的子流中提供后退导航