proposal how espaƱol enhancement docstrings coding-style python-2.7 naming conventions

coding-style - how - python docstring



Convenio de codificaciĆ³n de funciones "privadas" de Python (1)

Cuando escribo un módulo python y funciones en él, tengo algunas funciones "públicas" que se supone que están expuestas a personas externas, pero algunas otras funciones "privadas" que solo se supone que se deben ver y usar localmente e internamente.

Entiendo que en Python no hay funciones privadas absolutas. Pero, ¿cuál es el mejor, más limpio o más usado estilo para distinguir las funciones "públicas" y las funciones "privadas"?

Enumero algunos de los estilos que conozco:

  1. use __all__ en el archivo del módulo para indicar sus funciones "públicas" ( ¿Para qué sirve la variable de nivel de módulo python __all__? )
  2. use un guión bajo al comienzo del nombre de las funciones "privadas"

¿Hay alguna otra idea o convención que las personas usen?

¡Muchas gracias!


De la documentación del módulo Class de Python:

Las "variables de instancia privadas" a las que no se puede acceder, excepto desde dentro de un objeto, no existen en Python. Sin embargo, hay una convención que es seguida por la mayoría del código de Python: un nombre prefijado con un guión bajo (por ejemplo, _spam) debe tratarse como una parte no pública de la API (ya sea una función, un método o un miembro de datos) . Se debe considerar un detalle de implementación y está sujeto a cambios sin previo aviso.

Como existe un caso de uso válido para los miembros privados de la clase (es decir, para evitar los conflictos de nombres de nombres con nombres definidos por subclases), existe un apoyo limitado para dicho mecanismo, llamado mangling. Cualquier identificador de la forma __spam (al menos dos guiones bajos principales, como máximo un guión bajo final) se reemplaza textualmente por _classname__spam, donde classname es el nombre de la clase actual con guiones bajos destacados. Este cambio se realiza sin tener en cuenta la posición sintáctica del identificador, siempre que ocurra dentro de la definición de una clase.