Inheriting Variables and Methods
クラスのargumentにクラスを置くと、メソッドがinherit継承される。
継承するクラスのメソッドを指定するとこうなる。
うーんわからない。
Overriding Methods
super classs(もしくはparent cclass)とsub class
何してるかわからない
とあるクラスのsuper class とは、そのクラスがinheritしているクラスのこと。
super classに対して、それがinheritするクラスをsuper classという。
Pythonがメソッドやインスタンス変数を探すときは、いつも最初にインスタンスを探します。つまり、最初にインスタンスの内部を探し、インスタンスがそれを持っているかどうかを尋ねます。もしなければ、インスタンスのクラス内を探し、インスタンスのクラスがそのインスタンス変数やメソッドを持っているかどうかを尋ねます。ない場合は、スーパークラスを調べます。
compositionの説明が意味不明でした。
ここで強調したい重要な点は、libraryとこのbookクラスの間には、libraryが本のリストを含んでいるという何らかの関係があるにもかかわらず、bookを継承したりbookをlibraryから継承したりすることはしなかったということです。ライブラリには本が含まれているというだけです。そこで、booksを継承するのではなく、別のインスタンス変数を作成して、実際に持っている本のリストを格納するようにしました。これは構成と呼ばれるものの例です。ライブラリは本のリストを含むか構成されますが、book クラスを継承するのではなく、インスタンス変数として本のリストを持ちたいと思います。では、実際にこのクラスを使ってみましょう。たとえば、Ann Arbor District Libraryがあるとします。aadlは新しいライブラリと等しく、aadl.addBook(myBook)とaadl.addBook (myPaperBook)と言います。ここで、aadl.getNumBooksを出力すると、私のDistrict Libraryには2冊の本があることがわかる。以上、次回まで。
Invoking the Parent Class’s Method
テスト
__init__でクラスStudentが作るinstanceのvariableを定義する。__init__はコンストラクター、それ以外のdefはメソッドと呼ばれる。
parent classのinstanceをoverrideする
コメント