我想创建 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,则必须继续覆盖其他方法!
