Skip to main content
 首页 » 编程设计

python之如何创建 "list"类的子类,它在实例化时自行排序

2025年05月04日22小虾米

我想创建 SortedList,它是 list 类的子类。
我希望 SortedList 在实例化时自行排序。

例如,使用此输入:

x = SortedList([1, 9, 7]) 
print(x) 

我想要这样的输出:

[1, 7, 9] 

我是初学者。我知道可能有一些函数或数据类型对此更好,但我想练习我的 dunder 方法和 OOP 技能。

我试过了,但是没用:

class SortedList(list): 
    def __init__(self, values): 
        super().__init__() 
        self.values = values 
        self.sort(self.values) 

我有点困惑。

我以前使用过 super(),但我将它与我创建的父类(super class)一起使用,我知道其中的属性。 这次,我必须使用带有内置类的 super(),所以我不确定要写什么属性。

请帮忙。
谢谢!

请您参考如下方法:

使用这个:

class SortedList(list): 
    def __init__(self, values): 
        super().__init__(sorted(values)) 
 
x = SortedList([1, 9, 7]) 
print(x) 

list 可以从可迭代对象构建,例如从数组构建。因此,我们可以将值的排序副本传递给 super 构造函数,并让它初始化其属性(我们不必知道 list 的内部结构)。

请注意,如果您真的想实现 SortedList,则必须继续覆盖其他方法!