3

如何查看和覆盖内置类的完整定义?我已经看过图书馆文档,但正在寻找更多内容。

例如,是否可以覆盖 Array 类以使基本索引从 1 而不是 0 开始,或者将.sort()列表覆盖为我自己喜欢的排序算法?

4

2 回答 2

6

要创建自己的sort()方法,就这么简单:

class MyList(list):
    def sort(self):
       return 'custom sorting algorithm'

mylist = MyList([1,2,3])
mylist.sort() # => 'custom sorting algorithm'

我不建议更改列表的索引方式,因为这违背了最佳实践,所以我什至没有提供这样的例子!每当您想打破诸如运算符重载或索引之类的约定时,我觉得您应该重新考虑为什么要这样做并适应约定。

于 2010-05-07T16:33:50.273 回答
4

可以从内置类型继承并覆盖或添加行为。如果你应该这样做完全是另一个问题。有关基于 n 的列表的实现(例如从 1 开始),请参见此链接(数组应该非常相似)。

对于排序,您可以简单地使用上的键功能sorted

于 2010-05-07T16:26:24.020 回答