2012年2月18日土曜日

開発環境

『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7)のVI部(クラスとオブジェクト指向プログラミング)の23章(クラスのコーディング(基礎))練習問題を解いてみる。

1.

クラスはモジュールと違い、1つのクラスのコードを基にして複数のオブジェクトを作ることが出来る。

また、名前空間の継承、演算子のオーバーロドに対応できる。

2.

インスタンスを作るには、

クラス名()

クラスを作るにはclassステートメントを使えばいい。

class クラス名:
 // ボディ部分

3.

クラスの属性は、classステートメントの内側で変数に値を代入することによって作る。(classステートメントの実行後、<オブジェクト>.<属性>という形式のコードを書いてクラスの属性にアクセスすることも出来る。)

class Class:
 x = 10 // 属性

4.

インスタンスの属性はclassステートメントの内側のネストされたdefステートメントによって作る。(クラスの外のコードでインスタンスの属性を新たに作成したり、クラスの外のコードで属性値を取り取り出して変更することも出来る。)

class Class:
 def setdata(self, value):
  self.data = value // インスタンスの属性を作成

5.

クラスにおいてselfとはそのクラスのインスタンスオブジェクトでクラスのメソッドの第1引数を意味する。

6.

クラスで演算子のオーバーロードをするには、__X__というように名前の前後に2つの下線の付いた特殊なメソッドを使用すればいい。

class Class:
 def __init__(self, value): // コンストラクタ
  self.data = value
 def __add__(self, other): // 加算演算子+のオーバーロード
  return Class(self.data + other 

7.

演算子のオーバーロードはビルといんクラスとクラスを基にしたインスタンスオブジェクトで扱いを大きく変える必要が無くなるという目的で行う。

8.

演算子のオーバーロードに使用するメソッドで最もよく使用されるのは__init__メソッド。

9.

Pythonのオブジェクト指向プログラミングで特に重要なものを2つあげるとしたら、__init__メソッドと引数self。

0 コメント:

コメントを投稿