Python メモ – プライベート メソッド
Pythonのプライベートメソッドの書き方について調べたのでメモ。Pythonでは、名前が__
で始まり__
で終わらないメソッドがプライベートとして扱われる。次の例だと、__fullname()
がプライベートになり、外から呼び出すとエラーになる。
>>> class Person:
... def __init__(self, firstname, lastname):
... self.firstname = firstname
... self.lastname = lastname
...
... def print_fullname(self):
... print(self.__fullname())
...
... def __fullname(self):
... return self.firstname + ' ' + self.lastname
...
...
>>> p = Person('Donald', 'Trump')
>>>
>>> p.print_fullname()
Donald Trump
>>> p.__fullname()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Person' object has no attribute '__fullname'
しかし、プライベートメソッドの前に_クラス
をつけると呼び出せる。
>>> p._Person__fullname()
'Donald Trump'
よって、厳密には外から呼び出せないわけではないので気をつける必要がある。