Se debe usar la norma de la comunidad PEP8 y Python ALL_CAPS_CONSTANTS
. Es una pista visual común, utilizada durante décadas en C, Java, Perl, PHP, Python, bash y otros lenguajes de programación y entornos de shell. Pero en el lenguaje moderno en línea, TODAS LAS MAYÚSCULAS SIGNIFICA GRITOS . Y gritar es grosero.
Python es, sin embargo, bastante inconsistente al respecto ALL_CAPS_CONSTANTS
. JavaScript puede tener Math.PI
, pero Python tiene math.pi
. No hay una constante más reconocible o duradera que π. O considere sys.version_info
, la versión de Python que está ejecutando. 100% constante durante la vida de su programa - mucho más que PORT
o MAX_ITERATIONS
u otras constantes que le defina. ¿O qué tal sys.maxsize
? El valor entero nativo máximo de su plataforma es constante no solo en una o dos ejecuciones de programa, sino también en la vida de su hardware.
Si estas constantes - incluyendo algunos como π y e que son constantes fundamentales del universo, y no varían a lo largo toda la eternidad - si es que puede ser minúscula, así ... lo mismo pueden hacer otras constantes. Tu puedes elegir.
Recuerde, PEP8 es una guía de estilo. Una directriz, no una ley. Una guía a menudo infringida incluso por la biblioteca estándar de Python. Y citando otra directriz central de Python, PEP20 (también conocido como "El Zen de Python"):
- Hermoso es mejor que feo
- La legibilidad cuenta
- La practicidad es mejor que la pureza.
En una nota práctica, cuando el jugador de un programa YELLY_CONSTANT
y SHOUTY_PARAMETER
empieza a rallar, es útil recordar que las constantes en mayúsculas generalmente no son realmente soportando los ideales platónicos , pero los parámetros de la ejecución del programa. No hay nada realmente constante acerca de PORT
, SITENAME
o NUMRUNS
, y no tienen que ser administrados como programas globales independientes. Por ejemplo, se pueden colocar en un diccionario como un paquete de parámetros de programa accesible a nivel mundial:
config = {
'port': 80,
'sitename': "Bubba's Blog",
'numruns': 100,
}
Python también tiene una palabra clave bien el traspaso de parámetros instalación que reduce la necesidad de su uso APPARENTLY_ANGRY_GLOBAL_VARIABLES
:
def process_data(sitename, port=80, numruns=100):
...
process_data("Bubba's Blog")
En la práctica, muchos de estos valores serán (o deberían ser) leídos de archivos de configuración, variables de entorno del sistema operativo, argumentos de línea de comando u otras fuentes para satisfacer la inversión del principio / patrón de control . Pero esa es una historia más grande para otro día.