クラス-クラスを作る-
pythonの標準モジュールには多くのクラスが既に定義されているらしいが、
独自に作ることもできるらしい。
「みんなのPython」に書かれている例の通りにブックマーククラスを定義してみる。
定義にはclass文を使って、つづいてクラスの名前を添えるらしい。やってみるとブロックを記述
できるようになる。
>>> class Bookmark: ...
クラスのブロック内ではクラスのメソッドを定義できて、メソッドの定義にはdef文を使うらしい。
第一引数にはselfという引数を添える決まりらしい。
クラスの概要を表示するメソッドを定義してみると、
>>> class Bookmark: ... def print_outline(self): ... print "[Bookmark_class]" ... >>>
定義したメソッドを使ってみると、
>>> b = Bookmark() >>> b.print_outline() [Bookmark_class]
クラスにはアトリビュート(属性)なるものを定義できるらしい。
アトリビュートはクラスが持つ変数のようなもので、これを利用するとインスタンスオブジェクトに
独自のデータを保存できるらしいが、いまいち良くわからない。
新しいアトリビュートを作るときはクラス内でメソッドを定義して、その中で代入を行えばよいらしい。
メソッドの第一引数selfに、ドット区切りで設定するアトリビュート名を続けて変数みたいに代入するらしい。
いまいちわかりにくいのでとりあえずやってみると、
>>> class Bookmark: ... def print_outline(self): ... print "[Bookmark_class]" ... def set_title(self, title): ... self.title = title ... def get_title(self): ... return self.title ... >>> b = Bookmark() >>> b.set_title("test title") >>> b.get_title() 'test title'
set_title()メソッドの第二引数をself.titleというアトリビュートに代入しているわけだ。
それで、get_titleメソッドの戻り値にアトリビュートを設定していると。
それで、実際にset_title()メソッドを使ってタイトルを指定してやると、get_title()メソッド
でそれが返ってくるようになるわけか。
確かにクラス内の変数みたいに使えるのか。とりあえず理解できた気がする。