python-3.x - 什么是子类化 python 的列表或 UserList 的好方法,以便我可以更改基础数据但使用内置排序?
问题描述
假设我想创建一个列表类型的子类 CaesarList,这样所有元素的访问都被移动了一些量(在类中硬编码,而不是参数。愚蠢的是,但这只是一个例子)。
也就是说,如果我将其硬编码为 +2,
arr = CaesarList()
arr.extend([1,2,3,4,5])
那么arr[2] == 5
, arr[0]==3
. 所以我可以通过覆盖来轻松完成那部分__getitem__
。或者我想让它成为一个二维数组,或者其他一些废话,我可以覆盖__getitem__
and __setitem__
。但我希望能够利用内置排序。如何创建真正执行的 UserList 或列表兼容子类arr.sort()
?
解决方案
如果您__lt__
在类中覆盖该函数,它应该可以工作。相关文档
推荐阅读
- .net - 单元测试在调试中失败,没有到达第一条语句
- ios - 在 iOS 14.7.1 应用程序在写入特定特征的数据时与 BLE 设备断开连接
- mysql - 从不同的表中获取某个时间范围内项目的概率分布
- angular - 角框架
- swift - 获取 tableView 的高度
- python - DeepTCR 包不工作。ImportError:libstdc++.so.6:无法打开共享对象文件:没有这样的文件或目录
- bash - 如何grep与某个值匹配的某个字符串
- javascript - POST后如何通过fetch重定向页面
- mysql - docker中的mysql-keyring是空白的
- ios - 'Void' 类型不能符合 'View' | 迅速