2012年4月26日木曜日

開発環境

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

1.

機能の一部を実装せずにそれを継承するサブクラスで機能を実装することを前提としたクラスが抽象クラス。

2.

演算子のオーバーロードのためのメソッドのうち、クラスで反復処理をサポートする際にしようするのは__getitem__メソッド、__iter__メソッド。

3.

単純な代入ステートメントを、classステートメントのトップレベルに置くと、それはクラス属性となる。

4.

スーパークラスの__init__メソッドを呼び出すコードをサブクラスに入れる必要があるのは、スーパークラスでの全ての機能を保ったまま__init__メソッドをカスタマイズしたい場合。

5.

継承したメソッドを完全に別の物に置き換えるのではなく、スパークラスのメソッドの機能を全て活かした上で、新たな機能を追加するには、サブクラスのメソッドの中にスーパークラスのメソッドを呼び出せばいい。

コード(TextWrangler)

class A:
 def f(self):
  # 中身
class B(A):
 def f(self):
  A.f(self)
  # 追加する機能

6.

GenericDisplayクラスの__strメソッド、そしてその中にあるgatherAttrsメソッドが動作する。

0 コメント:

コメントを投稿