環境設定 数値 文字列 正規表現 リスト タプル 集合 辞書 ループ 関数 クラス データクラス 時間 パス ファイル スクレイピング その他

Python のプライベートなインスタンスメソッド:インスタンスは 2 つのアンダーバーから始まる名前のメソッドにアクセスできない

最終更新日 2023.02.18

2 つのアンダーバーから始まるインスタンスメソッドはプライベートになります。インスタンスはプライベートなインスタンスメソッドにアクセスできません。

class User:
    def __init__(self):
        self.name = ''
        self.count = 0

    def hello(self):
        print('my name is ' + self.name)

    def __add(self):
        print('--- increment ---')


a = User()

a.name = 'cat'
a.hello()  # my name is cat
a.__add()

# AttributeError: 'User' object has no attribute '__add'

hello : パブリック
__add : プライベート

オブジェクト ahello にできるため

my name is cat

と出力しています。プライベートなインスタンスメソッドにアクセスしようとすると AttributeError というエラーがおきます。