name - python: nombrar un módulo que tiene un nombre de dos palabras
python package name (4)
Aparte de PEP-8, también puede ver cómo los módulos nativos de Python tratan este problema.
Si fueras a comparar los módulos nativos de Python 2 con los de Python 3 , verías que la nueva tendencia con los desarrolladores oficiales es evitar mayúsculas y guiones bajos. Por ejemplo, ConfigParser
en Python 2 se convierte en configparser
en Python 3.
Viendo esto, el mejor curso de acción sería evitar mayúsculas y guiones bajos, y simplemente unir las palabras, es decir, sconsconfig
.
Estoy tratando de armar un módulo realmente simple con un archivo fuente .py en él, y ya he encontrado un obstáculo. Iba a llamarlo scons-config
pero import scons-config
no funciona en Python. Encontré esta pregunta de SO y miré la guía de estilo de PEP8, pero estoy desconcertado, no habla de las convenciones de dos palabras.
¿Cuál es la forma correcta de lidiar con esto?
- nombre del módulo: SconsConfig? scons_config? sconsconfig? scons.config?
- nombre del archivo .py único en él: scons-config.py? scons_config.py?
edición: vi "se desaconseja el uso de guiones bajos" y eso me dejó en un callejón sin salida: ¿debería usar "sconsconfig" o "scons_config" (supongo que los otros están fuera)?
Primero, el nombre del módulo es el mismo que el nombre del único archivo .py. En Python-speak, una colección de varios archivos .py es un paquete.
PEP-8 desalienta la división de nombres de paquetes con guiones bajos. Un pico rápido en mi directorio de paquetes de sitios muestra que los nombres de varias palabras normalmente se ejecutan juntos (por ejemplo, setuptools, sqlalchemy)
Los nombres de los módulos (es decir, los nombres de los archivos) se pueden dividir con guiones bajos (y generalmente lo hago porque odio los nombres que se publican en la red).
Quédate solo en minúsculas (según PEP-8). Esto evita problemas al pasar de sistemas de archivos sensibles a mayúsculas a mayúsculas y minúsculas y viceversa.
Si es necesario, siempre use guiones bajos _
.
Usando un punto .
Ni siquiera funcionaría, de lo contrario
from scons.config import whatever
se rompería.
Pero PEP 8 lo describe claramente:
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 .
ACTUALIZAR:
Para dirigirse directamente a su pregunta: creo que sconsconfig
está bien. No es demasiado largo y bastante legible.
Pero, honestamente, no creo que nadie lo culpe si usa guiones bajos y su código se ejecutará con cualquiera de las decisiones. Siempre hay un cierto nivel en el que ya no deberías preocuparte mucho.
-
Es un no ir. El símbolo se utiliza para el operador menos. Lo mismo es cierto en la mayoría de los lenguajes de programación. Use _
o de lo contrario nada en absoluto.