[Python-es] Constantes en Python

Chema Cortes py en ch3m4.org
Dom Oct 10 19:16:14 CEST 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

El 22/09/10 18:17, Moises Brenes escribió:

>> FREE_TRIAL_ID = const.FREE_TRIAL_ID = 1
> Es posible evitar esto?

No pienses en python como se hace con otros lenguajes. En python ni
existen constantes ni existen variables, tan sólo objetos con los que
hacer modificaciones. Lo que mal-llamamos variables (o constantes) no
son otra cosa que "referencias" a objetos, como etiquetas para poder
identificarlos.

En tu caso, FREE_TRIAL_ID no es una constante, cosa que podrás comprobar
al poder cambiar su valor sin ningún problema.

Para tener algo similar a una constante, el truco consiste en utilizar
un objeto tipo "const" (como el que has creado) que impida la
modificación de sus atributos. Sólo a través de este objeto podrás
referenciar tus constantes.

Tu aplicación debería funcionar de esta forma:

from constants import const


print const.FREE_TRIAL_ID

const.FREE_TRIAL_ID=5  #dará ERROR


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJMsfTaAAoJEFdWyBWwhL4FzOcH+wbhCg66LHiNSwjytoifHfbN
quGW9yxTd9h57GIbJHgFlp5zcG8tE5FnLSJbREvnYvQjmYn95v60U6t8rBA9vOoz
TRSjFzfJIX2+6SUqPGMjXSShXIhiFtC/fFmPxd6DGiimTGbDP1XDf2ANlDAaFIxR
IroTjmZ/1v1ziF34gpC3ZzKAK6AQqUXxzLFwLsgxzmm3BGnpKxUg1boQ8gzOZFsC
UOj7ZUyZuTGS7Nv9j7vTC0uODIu2vFTVsQL7x6ngtAFDEQJshtYvHT3d5MndNdtE
of3+Im6wtmCu7Ujyac3aqd+9iNcKSrYK9vL33yMGoU6SeQ2L1LlXfUNZNDVg1zc=
=1iV1
-----END PGP SIGNATURE-----


Más información sobre la lista de distribución Python-es