Olá João, tudo bem com você?
O encapsulamento tanto de métodos, quanto de atributos no Python, é um assunto que desperta diversas opiniões, isso por não ser algo obrigatório da linguagem - embora, seja extremamente importante definir a visibilidade de métodos e atributos quando se trabalha com orientação a objetos. Em Python não teremos um atributo ou método 100% privado.
Assim devemos contar com o profissionalismo das(os) programadoras(es) de que irão respeitar as conversões definidas pela comunidade e pela linguagem Python, compreender e respeitar essas conversões faz parte de nossa jornada de aprendizado com o objetivo a excelência.
Também, é importante dizer que não será possível invocar diretamente métodos que possuam duplo underscore fora da classe (através de objetos) e isso ocorre devido ao name mangling, que se trata de uma mudança no nome do método ou atributo para dificultar a leitura direta. Mas, reforço que apesar de dificultar, seu acesso não é impossível.
Para entender mais sobre atributos, métodos privados e até mesmo sobre name mangling, recomendo a leitura dos seguintes artigos - que estão em inglês, caso tenha dificuldade com o idioma, recomendo o uso do tradutor do navegador.
Em caso de dúvidas, encontro-me à disposição.
Abraços e bons estudos.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!