2011-02-01から1ヶ月間の記事一覧

初めてのPython(24章後編)

名前空間 = ディクショナリ サブクラスにスーパークラスの属性が継承される時に起こるのは「ディクショナリのリンク」 [kobakoba0723@fedora13-intel64 ~]$ cat namespace.py #!/usr/bin/env python class C1(object): c1_data = 1 def __init__(self, value…

初めてのPython(24章中編)

演算子のオーバーロード __getitem__ と __iter__ どちらも反復処理を実現させるのに使う。 __getitemm__はインデクシング処理に対応するフックメソッド*1 __iter__はイテレータプロトコルに対応するフックメソッド 反復処理には次のようなものが該当する。 …

初めてのPython(24章前編)

class ステートメント def ステートメントと同じような動き 該当モジュールが読み込まれた時に実行される クラス名に指定したクラスオブジェクトを生成し、クラス名の変数に代入する クラスは名前空間として考えられる クラスのなかで代入された変数はクラス…

初めてのPython(23章)

Pythonのクラスの特徴 名前空間の1つ 名前空間の継承(階層化)、演算子のオーバーロードが出来る クラスオブジェクトとインスタンスオブジェクト class ステートメントは、def ステートメントと同様に、初回インポート時に初めて実行される クラス変数はクラ…

初めてのPython(22章)

クラスとインスタンス クラスはインスタンスを作るためのひな形。 クラスを作成(定義)するには class ステートメントを使い、インスタンスを作成するにはクラスを呼び出す。 インスタンスの属性検索は以下のようにして行われる 下から上に(サブクラスの属性…

初めてのPython(21章)

モジュールのカプセル化 Pythonではカプセル化は出来ない。 アンダースコア(_)を使うことで、データを隠蔽することは出来るPEP8。 1個の場合、from ~ import * でインポートできないようになる 2個の場合、モジュール(クラス無し)の時は1個の時と同じ動き…