Exception AttributeError:''NoneType'object has no attributeエラー


出現:Exception AttributeError:''NoneType'object has no attribute
最近『Pythonリファレンスマニュアル』を勉強してClass部分を学び、クラスの構造分析部分の問題に遭遇した.
1、いつ作りますか.
2、いつ構造を分析しますか.
3、メンバー変数はどのように処理しますか?
4、Pythonの共有メンバー関数はどのようにアクセスしますか?
------------------------
探索プロセス:
1、Pythonには専用の構造と構造関数はありませんが、一般的には_init__および_del__この代替構造とプロファイルを使用して、初期化と削除操作をそれぞれ完了します.もう一つ_new__クラスの作成プロセスをカスタマイズしますが、ここでは説明しません. 
2、クラスのメンバー関数のデフォルトはpublicに相当しますが、デフォルトの先頭は__です.プライベート変数はプライベート変数ですが、Pythonには本当のプライベート変数は存在しません.次のようになります.
1 __priValue  =   0   # "_ __priValue"  
3、self._を通してclass__クラス自体にアクセスし、共有メンバー変数(self.)にアクセスします.class__.num_クラスのNewClassをnum_count置換self._class__.num_countコンパイル実行:
class Person:
    '''Represents a person.'''
    population = 0
    def __init__(self,name):
        '''Initializes the person's data.'''
        self.name = name
        print '(Initializing %s)' % self.name
        Person.population += 1
    def __del__(self):
        '''I am dying.'''
        print '%s says bye.' % self.name
        #Person.population-=1#の最初はこのように定義されています
        self.__class__.population-=1##これで間違いなし
        if  self.__class__.population == 0:
            print 'I am the last one.'
        else:
            print 'There are still %d people left.' % self.__class__.population
    def sayHi(self):
        print 'Hi, my name is',self.name
    def howMany(self):
        if Person.population == 1:
            print 'I am the only person here.'
        else:
            print 'We have %d persons here.' % Person.population
swaroop = Person('Swaroop')
swaroop.sayHi()
swaroop.howMany()
kalam = Person('Abdul Kalam')
kalam.sayHi()
kalam.howMany()
swaroop.sayHi()
swaroop.howMany()
本の上でまたいくつかの問題に言及して、ここで補充します(参考にします):
 
__new__()は、インスタンスの作成前に実行される唯一の方法であり、一般的にメタクラスを定義する際に使用されます.del xxxはアクティブに呼び出されません_del__メソッド、参照カウント=0の場合のみ、_del__()は実行され、定義されています.del_()のインスタンスはPythonのリサイクルゴミ収集器で収集できないので、できるだけカスタマイズしないでください_del__().一般的に、_del__()ゴミ処理装置は破壊されません.
 
実験でゴミ回収が自動的に呼び出されたことが判明しました_del__, これは本の中の言うことと合わないし、どういうわけか、勉強を続けなければならない.