En python se nombra una función o variable privada del módulo _foo. Si es privado para una clase, son nombres __foo. La mecánica detrás de cómo funcionan estos trabajos es diferente, sin embargo, eso es de poca relevancia para la pregunta.
¿Por qué durante el diseño del lenguaje Python se eligieron los caracteres de subrayado doble para los miembros privados de la clase? ¿Por qué no subrayar solo, como para el módulo privado? ¿Por qué no algún otro personaje que sea más visible? (Diferenciar entre _ y __ es difícil).
Estoy seguro de que hay algo de historia aquí, pero tengo problemas para encontrarlo, porque todo lo que encuentro son tutoriales que me dicen lo que significa, en lugar de por qué es así.