[Python-es] Constantes en Python
Rolando Espinoza La Fuente
darkrho en gmail.com
Mar Sep 21 02:49:41 CEST 2010
2010/9/20 Moises Brenes <moises.brenes en gmail.com>:
[...]
> CASO #1
> --
> import const
>
> print const.FREE_TRIAL_ID
> --
>
> ERROR #1
> --
> Traceback (most recent call last):
> File "app.py", line 3, in <module>
> print const.FREE_TRIAL_ID
> AttributeError: _const instance has no attribute 'FREE_TRIAL_ID'
Si FREE_TRIAL_ID esta definido en constant.py, deberías
importarlo/ejecutarlo primero
import constant
import const
print const.FREE_TRIAL_ID
>
> CASO #2
> --
> import constant
>
> print const.FREE_TRIAL_ID
> --
>
> ERROR #2
> Traceback (most recent call last):
> File "app.py", line 3, in <module>
> print const.FREE_TRIAL_ID
> NameError: name 'const' is not defined
>
No has importado const, que -supongo- esta importado dentro constant.py
import constant
print constant.const.FREE_TRIAL_ID
> Es decir, no hay error al agregar miembros a const, sino al hacer
> referencia a ellos o al menos eso es lo que veo
Si, por que no estan siendo referenciados correctamente.
Por cierto, en tu primero código:
from constant import const.FREE_TRIAL_ID
es incorrecto. Esto funcionaría:
from constant import FREE_TRIAL_ID
me parece que lo que quieres es:
from const import FREE_TRIAL_ID
A pesar de definirlas en constant.py, tus "constantes" viven en const
por que const es un object.
Creo que lo siguiente trae un resultado interesante
# constant.py
import const
FREE_TRIAL_ID = const.FREE_TRIAL_ID = 1
# prueba.py
from constant import FREE_TRIAL_ID
print FREE_TRIAL_ID
FREE_TRIAL_ID = 2
print FREE_TRIAL_ID
Rolando Espinoza La fuente
www.insophia.com
Más información sobre la lista de distribución Python-es