Exato, tanto _
quanto __
na frente de um metodo define ele como privado, a diferença vai ser que um o python vai renomear a variavel pra nao ter problemas caso a classe filha tenha um metodo privado com o mesmo nome (se você usa _
e tem uma classe filha com um metodo com o mesmo nome que tambem usa _
pra ser privado o metodo da classe mãe vai ser sobrescrito, já com __
você evita isso).
E tudo pode ser acessado porque o python deduz que somos todos adultos que sabemos o que estamos fazendo enquanto estamos usando ele. Então se você quiser acessar uma variavel privada faça por sua conta e risco. Ninguem vai te impedir, mas existe o _
pra te alertar que você não deveria estar fazendo isso.
Se quiser saber mais sobre isso esse video é excelente (em inglês). Já coloquei no ponto que fala sobre a 'privacidade de metodos' no python mas se quiser pode assistir tudo.