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
: プライベート
オブジェクト a
は hello
にできるため
my name is cat
と出力しています。プライベートなインスタンスメソッドにアクセスしようとすると AttributeError というエラーがおきます。