クラス on Python

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>