Читать книгу Python a fondo - Óscar Ramírez Jiménez - Страница 31

1.5.6 Convención de nombres

Оглавление

La convención de nombres establece cómo deben de nombrarse los identificadores de cada parte del lenguaje (variables, funciones, nombres de fichero, clases, etc.). PEP-8 define también las reglas para nombrar el código Python.

Antes de pasar a las reglas se exponen las convenciones más usadas:

CamelCase: se construye uniendo palabras clave una detrás de otra, pero utilizando la primera letra de cada palabra en mayúscula. Su nombre hace referencia a que el resultado final se asemeja a la joroba de los camellos.

snake_case: se construye uniendo las palabras con una barra baja (_) entre ellas.

SCREAMING_SNAKE_CASE: se construye de forma similar a la snake_case, pero usa todos los caracteres en su forma mayúscula.

Mayúsculas o minúsculas: son palabras en las que todas las letras son de uno u otro formato.

A continuación, se muestra cómo se usan estas convenciones de nombres en Python:

• Los nombres deberían estar definidos por el uso que se vaya a hacer de ellos y no por la implementación interna.

• Si un proyecto ya tiene una convención de nombres establecida, se mantendrá, dado que no hay que romper la consistencia del proyecto por seguir la guía de estilos.

• Para definir que un objeto está protegido se añade un carácter "_" como prefijo del nombre, dado que al hacer una importación general (utilizando el carácter *) se omiten los nombres escritos de esta forma.

• Los nombres que terminan con el carácter "_" se utilizan para evitar conflictos con palabras reservadas como class, def, if, etc.

• Cuando un nombre comienza por doble "_" (por ejemplo: __foo) dentro de cualquier clase (por ejemplo, Bar), se trata de manera diferente, dado que el compilador lo cambiará internamente por _<nombre_clase>__<nombre> (_Bar__foo en el ejemplo), lo que se conoce como Python's mangling rules y evita colisiones de nombres. Este método se asemeja a hacer un objeto privado, aunque realmente se puede acceder a él si se conocen las reglas, las clases y el nombre de la función. En cualquier caso, se recomienda encarecidamente no acceder a estos métodos utilizando este tipo de nombres.

• Si el nombre de la función comienza y termina con doble "_", se considera un método mágico y se recomienda que no se inventen nuevos nombres, sino que se usen los disponibles en la documentación.

• Para nombrar paquetes o módulos se utilizarán nombres en minúsculas o snake_case, intentando que sean lo más cortos posible.

• Para los nombres de las clases y los tipos de variables se usa CamelCase.

• El primer parámetro para los métodos de instancias y para los métodos de clase será self y cls, respectivamente.

• Para los nombres de las funciones se utilizará snake_case. Prefijo con un solo "_" si la función es local al módulo y prefijado con 2 caracteres "_" solo para evitar colisiones con la herencia al hacer uso de las Python's mangling rules.

• Para las constantes se hará uso de las mayúsculas o de SCREAMING_SNAKE_CASE.

Python a fondo

Подняться наверх