Python Classes and Inheritance: week2

 

 

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する

 

 

 

 

 

コメント