¿Cuál es la convención de nomenclatura en Python para variables y funciones?
Procedente de C#, la convención de nomenclatura para variables y métodos suele ser camelCase o PascalCase:
// C# example
string thisIsMyVariable = "a"
public void ThisIsMyMethod()
En Python, he visto lo anterior pero también he visto que se usa Snake_case:
# python example
this_is_my_variable = 'a'
def this_is_my_function():
¿Existe un estilo de codificación más preferible y definitivo para Python?
Consulte Python PEP 8: nombres de funciones y variables :
Los nombres de las funciones deben estar en minúsculas, con las palabras separadas por guiones bajos según sea necesario para mejorar la legibilidad.
Los nombres de variables siguen la misma convención que los nombres de funciones.
MixedCase solo se permite en contextos donde ese ya es el estilo predominante (por ejemplo, threading.py ), para conservar la compatibilidad con versiones anteriores.
La Guía de estilo de Google Python tiene la siguiente convención:
module_name
,package_name
,ClassName
,method_name
,ExceptionName
,function_name
,GLOBAL_CONSTANT_NAME
,global_var_name
,instance_var_name
,function_parameter_name
.local_var_name
_
Se debería aplicar un esquema de denominación similar a unCLASS_CONSTANT_NAME
David Goodger (en "Code Like a Pythonista" aquí ) describe las recomendaciones de PEP 8 de la siguiente manera:
joined_lower
para funciones, métodos, atributos, variablesjoined_lower
oALL_CAPS
para constantesStudlyCaps
para clasescamelCase
sólo para ajustarse a convenciones preexistentes
Como admite la Guía de estilo para el código Python ,
Las convenciones de nomenclatura de la biblioteca de Python son un poco confusas, por lo que nunca conseguiremos que esto sea completamente consistente.
Tenga en cuenta que esto se refiere sólo a la biblioteca estándar de Python . Si no pueden ser tan consistentes, entonces no hay muchas esperanzas de tener una convención generalmente cumplida para todo el código Python, ¿verdad?
De eso, y de la discusión aquí, deduciría que no es un pecado horrible si uno sigue usando, por ejemplo, convenciones de nomenclatura de Java o C# (claras y bien establecidas) para variables y funciones al pasar a Python. Teniendo en cuenta, por supuesto, que es mejor cumplir con cualquier estilo predominante para una base de código/proyecto/equipo. Como señala la Guía de estilo de Python, la coherencia interna es lo más importante.
Siéntase libre de descartarme como hereje. :-) Al igual que el OP, no soy un "Pythonista", al menos todavía no.