Em python, uma função ou variável privada do módulo é nomeada _foo. Se é privado para uma classe, são nomes __foo. A mecânica por trás de como esses trabalhos são diferentes, porém isso é de pouca relevância para a questão.
Por que, durante o design da linguagem Python, os caracteres sublinhados duplos foram escolhidos para os membros privados da classe? Por que não um sublinhado único, como no módulo privado? Por que não outro personagem que é mais visível? (Diferenciar _ e __ é difícil).
Tenho certeza de que existe alguma história aqui, mas estou tendo problemas para encontrá-la, porque tudo o que encontro são tutoriais que me dizem o que isso significa, e não por que é assim.