relacion composicion asociacion agregacion python naming-conventions filenames classname

composicion - Asociación entre clases de nombres y nombres de sus archivos en python(¿convención?)



composicion java (2)

En python (y algunos otros idiomas) he aprendido que el nombre de una clase debe escribirse en letras minúsculas, excepto la primera letra, que debe ser mayúscula. Ejemplo:

class FooBar: ...

Una clase debe ir en un archivo, con el mismo nombre que la clase. En este ejemplo sería un archivo foobar.py . Si quiero importar la clase foo algún lugar tengo que hacer esto:

from foobar import FooBar

Esta convención me confunde un poco. Mi intuición me dice que, si el nombre de archivo indica una clase, debe escribirse con la primera letra en mayúsculas, también, como FooBar.py . Esto no parece bonito en los nombres de archivos. Tal vez alguien podría decirme cuál es la convención estándar para esto?

Espero haber hecho mi pregunta comprensible. :-)


Lo que has presentado es la convención estándar.

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.

Dado que los nombres de los módulos se asignan a los nombres de los archivos, y algunos sistemas de archivos no distinguen entre mayúsculas y minúsculas y truncan los nombres largos, es importante que los nombres de los módulos se elijan como bastante cortos; esto no será un problema en Unix, pero puede ser un problema. problema cuando el código se transporta a versiones anteriores de Mac o Windows, o DOS.

Cuando un módulo de extensión escrito en C o C ++ tiene un módulo Python adjunto que proporciona una interfaz de mayor nivel (por ejemplo, más orientada a objetos), el módulo C / C ++ tiene un guión bajo (por ejemplo, _socket ).

Nombres de clase

Casi sin excepción, los nombres de clase usan la convención de CapWords. Las clases para uso interno tienen además un guión bajo.

( Guía de estilo de Python )

Ver por ejemplo

from configparser import ConfigParser

(que, por cierto, era ConfigParser en Python 2.x pero cambió a minúscula en 3.x).


PEP 8 dice:

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.

También debo tener en cuenta que no debe tener necesariamente solo una clase por archivo. En su lugar, debe incluir clases relacionadas juntas en el mismo archivo. (Por supuesto, en algunos casos, tener una clase en un archivo funciona, pero no siempre es así)