poo otra metodo llamar instancia importar herencia clases clase python naming-conventions filenames camelcasing

otra - ¿Deberían los nombres de archivo de clase Python también ser camelCased?



poo python (3)

Sé que las clases en Python normalmente se utilizan con camelCase.

¿Es también la convención normal que el archivo que contiene la clase también sea camelCase''d, especialmente si el archivo solo contiene la clase?

Por ejemplo, ¿la clase className también debe almacenarse en className.py en lugar de class_name.py ?


Mi pregunta es, ¿es también la convención normal que el archivo que contiene la clase también sea camelCase''d, especialmente si el archivo solo contiene la clase?

Respuesta corta: No.

Respuesta más larga: deben estar en minúsculas y subrayados según sea necesario.

De PEP8 "Nombres de paquetes y módulos" :

Los módulos deben tener nombres cortos, todo en minúsculas. Los guiones bajos se pueden usar en el nombre del módulo si mejora la legibilidad. Los paquetes de Python también deben tener nombres cortos en minúsculas, aunque se desaconseja el uso de guiones bajos.

Si no está claro qué es un module :

Un módulo es un archivo que contiene definiciones y declaraciones de Python. El nombre del archivo es el nombre del módulo con el sufijo .py anexado.


La convención oficial es usar todas las letras minúsculas para los nombres de archivos (como ya han dicho otros). La razón, sin embargo, no se ha mencionado ...

Como Python funciona en varias plataformas (y es común usarlo de esa manera), pero los sistemas de archivos varían en el uso de la carcasa, es mejor simplemente eliminar los casos alternativos. En Linux, por ejemplo, es posible tener MyClass.py y myclass.py en el mismo directorio. ¡Eso no es así en Windows!

En una nota relacionada, si tiene MyClass.py y myclass.py en un repositorio de git, o si simplemente cambia la carcasa en el mismo archivo, git puede actuar de manera extravagante cuando se empuja / separa de Linux y Windows.

Y, aunque apenas está en el tema, pero en la misma línea, SQL tiene estos mismos problemas donde diferentes estándares y configuraciones pueden o no permitir a UpperCases en los nombres de las tablas.

A mí, personalmente, me resulta más agradable leer TitleCasing / camelCasing incluso en los nombres de archivo, pero cuando haces algo que puede funcionar en varias plataformas es más seguro que no lo hagas.


La siguiente respuesta proviene en gran parte de esta respuesta .

Si va a seguir el PEP 8, debe atenerse a todos los nombres en minúsculas, con guiones bajos opcionales.

Para citar las convenciones de nomenclatura de PEP 8 para paquetes y módulos :

Los módulos deben tener nombres cortos, todo en minúsculas. Los guiones bajos se pueden usar en el nombre del módulo si mejora la legibilidad.

Y para las clases:

Los nombres de clase normalmente deben usar la convención de CapWords.

Vea esta respuesta para ver la diferencia entre un módulo, una clase y un paquete:

Un módulo de Python es simplemente un archivo fuente de Python, que puede exponer clases, funciones y variables globales.