クラス on Python
- Ubuntu 10.10
Python 2.6.6
■プログラム(TestClass.py)
#! /usr/bin/env python # coding:utf-8 # クラスを定義する class SampleClass(object): ''' ドキュメンテーション。クラスの説明。 ''' # インスタンス変数 moji = "aiueo" # 初期化処理 def __init__(self): ''' コンストラクタ。初期化処理。メソッドの下に説明は見にくいと思う。 ''' pass # インスタンスメソッド def SampleFunction(self, hoge): ''' メソッド定義。インスタンス変数[moji]に引数[hoge]を連結 ''' print self.moji + hoge # メソッドの重複。デバッグ用。 # def SampleFunction(self, hoge): # "メソッドが重複しても実行は可能。最後に定義されたメソッドが有効になる" # print "booo" # インスタンス生成 smp = SampleClass() #ドキュメンテーション表示 print smp.__doc__ # 出力結果 # # ドキュメンテーション。クラスの説明。 # # インスタンスメソッド smp.SampleFunction("ABCDE") # aiueoABCDE print hasattr(smp, 'moji') #----------------- # インスタンス属性 #----------------- smp.value = "abc" print smp.value # abc # インスタンス属性の確認 # インスタンス属性であればTrue print hasattr(smp, 'value') # True # インスタンス属性の削除 del smp.value print hasattr(smp, 'value') # False # クラス属性はエラーになる #del smp.moji #AttributeError: 'SampleClass' object attribute 'moji' is read-only #------------------- # クラシック・クラス #------------------- class ClassicClass(): ''' objectを継承しないクラス。後方互換性のために残っている。通常は使用しない。 ''' pass # クラシック・クラスはinstance型となる print ClassicClass() # <__main__.OldClass instance at 0xb772f6ec> print SampleClass() # <__main__.SampleClass object at 0xb772f6ec>