Viniendo de un fondo de C #, la convención de nomenclatura para variables y nombres de métodos suele ser CamelCase o Pascal Case:
// C# example
string thisIsMyVariable = "a"
public void ThisIsMyMethod()
En Python, he visto lo anterior, pero también he visto guiones bajos utilizados:
# python example
this_is_my_variable = 'a'
def this_is_my_function():
¿Hay un estilo de codificación más preferible y definitivo para Python?
Ver Python PEP 8.
Los nombres de las funciones deben ser minúsculas,
con palabras separadas por guiones bajos como
necesario para mejorar la legibilidad
mixedCase está permitido solo en contextos
donde eso ya es el prevaleciente
estilo
Variables ...
Use las reglas de nombres de función:
minúsculas con palabras separadas por
subraya si es necesario para mejorar
legibilidad.
Personalmente, me desvío de esto porque también prefiero mixedCase
encima lower_case
para mis propios proyectos
Guía de estilo de Google Python tiene la siguiente convención:
module_name, package_name, ClassName, method_name, ExceptionName,
nombre_función, GLOBAL_CONSTANT_NAME, nombre_var_google,
instance_var_name, function_parameter_name, local_var_name
Se debe aplicar un esquema de nombres similar a un CLASS_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, variables
joined_lower
o ALL_CAPS
para
constantes
StudlyCaps
para clases
camelCase
solo para cumplir con
convenciones preexistentes
Como el Guía de estilo para el código Python admite,
Las convenciones de nombres de Python
biblioteca son un poco desordenados, así que lo haremos
nunca conseguir esto completamente consistente
Tenga en cuenta que esto se refiere solo a Python biblioteca estándar. Si no pueden conseguir ese consistente, entonces apenas hay mucha esperanza de tener una convención generalmente adherida a todas Código de Python, ¿está ahí?
De eso, y la discusión aquí, deduciría que es no 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 cruzar a Python. Teniendo en cuenta, por supuesto, que es mejor seguir el estilo que prevalezca para una base de código / proyecto / equipo. Como señala la Guía de estilo de Python, consistencia interna lo que mas importa.
Siéntase libre de despedirme como un hereje. :-) Al igual que el OP, no soy un "Pythonista", todavía no de todos modos.
Ahi esta PEP 8, como muestran otras respuestas, pero PEP 8 es solo la guía de estilo para la biblioteca estándar, y solo se considera como un evangelio. Una de las desviaciones más frecuentes de PEP 8 para otras piezas de código es la denominación variable, específicamente para los métodos. No hay un único estilo predominante, aunque teniendo en cuenta el volumen de código que usa mixedCase, si se hiciera un censo estricto, probablemente se terminaría con una versión de PEP 8 con mixedCase. Hay muy poca otra desviación de PEP 8 que sea tan común.
Como se mencionó, PEP 8 dice que use lower_case_with_underscores
para variables, métodos y funciones.
Prefiero usar lower_case_with_underscores
para variables y mixedCase
para los métodos y funciones hace que el código sea más explícito y legible. Así siguiendo el Zen de Python "explícito es mejor que implícito" y "Redabilidad cuenta"
Personalmente trato de usar CamelCase para las clases, los métodos y las funciones de mixedCase. Las variables suelen estar separadas por guiones bajos (cuando puedo recordar). De esta manera, puedo decir de un vistazo qué es exactamente lo que estoy llamando, en lugar de que todo parezca igual.