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


概要


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

__変数名

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


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に強引にアクセスする方法がこれ

出力


Bob

説明


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

間違えやすい問題