ちょっと楽しいエクササイズがあります｡
クラスsuper listを使ってsuper listを作成して欲しい｡
ここで､ Pythonのリストと同じように､ 通常のリストと同じようにインデックスにアクセスするためのコードを追加してください｡
ただ､ スーパーリストが特別なダンダー方式になるという違いだけです｡
長さを出すときに言ってみよう｡
だから､ ダンダーダンダーの長さを定義すると､ それを修正して､ 何があっても戻ってくるようにするんです｡
1000.
さて､ 簡単そうに見えるかもしれませんが､ ここでやりたいのは長さダンダーの変更だけだからです｡
しかし､ 問題は､ 継承やオブジェクト指向プログラミングについて学んだことに基づいて､
リストに必要なダンドリをいちいち書くのではなく､ リストがすでに持っている力を簡単に獲得して､
この長さを変更するだけでよいのでしょうか｡
ダンダー だから､ スーパーリストは､ 私たちが作ることができるリストになることを忘れないでください｡
このようにスーパーリストと呼ばれるものをインスタンス化することができます｡
スーパーリスト
そして､ 長さ､ スーパーリストといったことができるようになるのです｡
また､ スーパーリストのアイテムにアクセスしたり､ スーパーリストを使用することもできます｡
1つのドット､ 仮にペンとします｡
そして多分､ パンツ5枚で､ 実際にスーパーを手に入れる｡
レストワン｡
よし､ ここから持ち帰るんだ｡
やってみてください｡
答えを教えるから､ ビデオを一時停止してください｡
では､ これを実装してみましょう｡
ここにselfを入れて､ 仮に1000だけ返すことにする｡
スーパーリスト1を呼び出すときに､ これをコメントアウトできるようにするためです｡
そして､ 私はもっと長くやっています｡
プリントアウトしてみよう
1000は欲しいところだ｡
それはいいことだ｡
でも､ この機能性は欲しい｡
スーパーリストに追記できるようにしたい｡
では､ これを実行し､ 何が起こるか見てみましょう｡
アトリビュートエラー super list object has no attribute append が発生します｡
うーん｡
考えてみよう｡
Pythonのリストがすでに持っている力をどうやったら身につけられるか｡
相続について学んだこと
そうですね｡
そして､ 私たちがすべきことは､ 今ここでただ単純にリストを入力することです｡
Listはsuperclassの親クラスになります｡
では､ これに挑戦してみましょう｡
ここで､ 「実行」をクリックすると
よし､ うまくいったようだ｡
インデックスでスーパーリストにアクセスしたい場合はどうすればよいのでしょうか？
まあ､ ゼロのインデックスで5つじゃないですけどね｡
実行をクリックすると
1000を得る｡
それはまだ何もプリントしていないからです｡
そして､ 「実行」をクリックします｡
確認してみてください｡
このスーパーリストができるようになったのは､ リストの機能を拡張しただけなんです｡
なんてかっこいいんでしょう｡
今､ ダブルチェックする｡
Pythonにはサブクラスと呼ばれる楽しい機能があります｡
そして､ ここではスーパーリストと言います｡
そして､ 「実行」をクリックすると「リスト」｡
スーパーリストはリストのサブクラスであるため､ 私はtrueを取得します｡
うん､ その通りだ｡
これはベースオブジェクトのサブクラスのリストなのですが､ どうでしょうか？
うん｡
本当なんです｡
Pythonでは､ すべてが基本オブジェクトクラスを継承したオブジェクトであることを覚えておいてください｡
そして､ いくつかの組み込みのリストメソッドを継承し､ このように継承するだけで､ スーパーリストでそのすべてを使用することができるのです｡
とても､ かっこいいです｡
さて､ 皆さんの中には､ これは簡単なエクササイズで､ そうでない人もすぐに分かったかもしれませんね｡
ご安心ください｡
今はね､ かなりクールですよ｡
次回作でお会いしましょう｡
バイバイ｡