2010/9/20 Rolando Espinoza La Fuente <dark...@gmail.com>: > 2010/9/20 Moises Brenes <moises.bre...@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
Si, y de paso algo que no quisiera que sucediera, podria traer confusion > # constant.py > import const > FREE_TRIAL_ID = const.FREE_TRIAL_ID = 1 Es posible evitar esto? > # prueba.py > from constant import FREE_TRIAL_ID > > print FREE_TRIAL_ID > > FREE_TRIAL_ID = 2 > > print FREE_TRIAL_ID _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/