[lang-ref] ( private_method ) ( python )

def test_private_method():
    class Class01():
        def _internalmethod01(self):
            return '_internalmethod01'

        def __privatemethod02(self):
            return '__privatemethod02'

        def method01(self):
            return self._internalmethod01()

        def method02(self):
            return self.__privatemethod02()

    c = Class01()

    assert c.method01() == '_internalmethod01'
    assert c.method02() == '__privatemethod02'

    # Note: A single leading underscore is just a convention.
    # A double leading underscore triggers name mangling (not true privacy).

    assert c._internalmethod01()         == '_internalmethod01'
    assert c._Class01__privatemethod02() == '__privatemethod02'