覆盖内置类(Python)

Yip*_*eng 2 python overriding built-in

如何查看和覆盖内置类的完整定义?我见过图书馆的文档,但我正在寻找更多的东西.

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

jat*_*ism 7

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

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

mylist = MyList([1,2,3])
mylist.sort() # => 'custom sorting algorithm'
Run Code Online (Sandbox Code Playgroud)

我不建议改变列表被索引的方式,因为这违反了最佳实践,所以我甚至没有提供一个例子!每当你想要破坏运算符重载或索引等内容的约定时,我觉得你应该重新考虑为什么要这样做并适应约定.