我有个有趣的小练习给你｡
我要你用类的超级列表创建一个超级列表｡
现在在这里, 我想让你添加一些代码, 让我们可以像Python中的列表一样,
通过索引访问, 通过任何常规列表允许我们使用的方式｡
但唯一的区别是, 超级列表将有一个特殊的Dunder方法｡
假设我们计算长度时｡
所以当我们定义Dunder长度时, 我们要修改它, 无论如何都要返回｡
1000.
这看起来很简单, 因为我们要做的就是修改dunder的长度｡
但问题是, 基于你所学到的关于继承,
关于面向对象编程的知识, 而不是必须写每一个我们需要在列表上使用的dunder, 我们如何才能容易地获得列表已经拥有的能力,
然后修改这个长度？
记住, 超级列表是我们可以创建的列表｡
我们可以实例化这个超级列表, 我们将调用它.
超级名单｡
它将允许我们做一些事情, 比如长度, 超级列表｡
并且还访问超级列表中的项或使用超级列表｡
一个点, 比如说一支笔｡
也许穿五号裤就能变得超级棒｡
只恐一人｡
好了, 把它拿走｡
给予｡
暂停视频, 因为我给予你答案｡
所以让我们来实现它｡
这里有self, 我们只返回, 比如说, 1000.
所以当我们调用超级列表1的时候, 我们把它注释掉｡
而且我做得更久｡
我们把它打印出来｡
我应该得到1000｡
那就好｡
但我想要这个的功能｡
我希望能够追加到我的超级列表中｡
让我们运行这个程序, 看看会发生什么｡
我得到一个属性错误, 超级列表对象没有附加属性｡
嗯嗯嗯
让我们好好想想｡
我们如何才能获得Python中列表已经拥有的能力呢？
我们学到的关于遗传的知识｡
好吧, 我知道了
我们现在要做的就是在这里输入list｡
List成为我们超类的父类｡
所以我们来给予试吧｡
现在, 如果我单击“运行”｡
好吧, 看起来有用｡
如果我们想访问索引处的超级列表, 该怎么办？
好吧, 不是索引为零时的五｡
如果我点击运行｡
我得到1000｡
那是因为我们还没有打印任何东西, 所以我们在这里打印.
然后单击“运行”｡
你看
我们可以有一个超级列表, 我们只是扩展了列表的功能｡
这很酷吧？
现在再仔细检查一下｡
在Python中有一个有趣的小函数, 叫做子类｡
这里我们说超级列表｡
如果单击“运行”, 则显示“列表”｡
我得到true是因为超列表是列表的子类吗？
是的, 这是真的｡
那么这是列表基对象的子类吗？
是的｡
这是真的｡
请记住, Python中的所有内容都是从基本对象类继承的对象｡
然后我们继承了一些内置的列表方法, 我们可以在超级列表中使用所有这些方法, 就像这样继承.
非常, 非常酷｡
现在对你们中的一些人来说, 这可能是一个简单的练习, 如果你没有的话, 你会马上得到它｡
别担心我会的
现在, 你知道, 很酷｡
下次见｡
再见, 再见, 再见