クラスの中の変数に外からアクセスできなくする


概要


クラスのコンストラクタの中で変数を定義するときに

__変数名

というふうに、頭に__をつけると外部からアクセスできなくなる

        
class aClass():

    def __init__(self,name):
        self.__name = name

ob01 = aClass('Bob')
#print(ob01.__name)

print(ob01._aClass__name)
        
      
        
aCalssというクラスを以下に定義

    コンストラクタを定義(引数はname)
        変数self.__nameにname(引数name)を入れる

ob01にクラスaClassのインスタンスを引数「Bob」で作成
ob01.__nameをプリントしようとするとエラーになる、アクセスできない

ob01.__nameに強引にアクセスする方法がこれ
        
      

print出力

        
Bob
        
      

説明


外部から直接内部の変数が変えられると都合の悪いことがあるので
そういうときはこうすればいい
  

間違えやすい問題