Estas son todas las convenciones, por lo que no se aplican de todos modos. Aún así, normalmente puede esperar:
__somename__
Algo definido en la propia especificación de lenguaje python. No use esto en su propio nombre.
_somename
Esto normalmente se supone que se llama a través de algún mecanismo diferente en lugar de hacerlo directamente. Similar a declarar algo privado en la mayoría de los otros idiomas, pero no aplicado de ninguna manera.
__somename
Esto es realmente no supone que se llama directamente, y está destrozado internamente para dejar de hacerlo accidentalmente. Si realmente necesita llamarlo por algún motivo, consulte la documentación para averiguar cómo.
Cualquiera de los anteriores se puede aplicar por igual a los nombres de funciones, variables o clases.
__method no es realmente privado, está destrozado con el nombre de clase pero todavía se puede acceder normalmente. +1 sin embargo. –
@Bastien - ¡gracias por mejorar el formateo! –
-1. porque __x no es privado en el sentido de OOP, y ese no es el punto. El objetivo es evitar dos clases que usen el mismo atributo por error. Es la entrega del espacio de nombres, en lugar de privada/protegida. –