クラス-クラスを作る-

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()メソッド
でそれが返ってくるようになるわけか。
確かにクラス内の変数みたいに使えるのか。とりあえず理解できた気がする。