[Python-es] Constantes en Python

Angel Claudio Alvarez angel en angel-alvarez.com.ar
Mar Sep 21 01:15:47 CEST 2010


El lun, 20-09-2010 a las 12:39 -0600, Moises Brenes escribió:
> Que tal,
> 
> Sucede que queria ciertas variables se comportaran en modo solo-lectura,
> 
> Para ello implentaria lo que dice el Python Cookbook, creando una clase:
> 
> 
> ---const.py:
> 
> import sys
> 
> class _const:
>   class ConstError(TypeError):
>     pass
> 
>   def __setattr__(self, name, value):
>     if self.__dict__.has_key(name):
>       raise self.ConstError, 'Can\'t rebind const (%s)' % name
> 

proba con comillas dobles: "Can't ...

>     self.__dict__[name] = value
> 
>   def __delattr__(self, name):
>     if self.__dict__.has_key(name):
>       raise self.ConstError, 'Can\'t unbind const (%s)' % name
> 

lo mismo

>     raise NameError, name
> 
> sys.modules[__name__] = _const()
> 
> y en otro fichero tendria las constantes:
> 
> ---- constants.py
> 
> import const
> 
> const.MY_CONST = 5
> 
> -- app.py
> 
> from constants import const.MY_CONST
> 
> Luego queria utilizarlas, en una aplicacion, sin embargo me da el
> siguiente error:
> 
> Encountered "." at line 8, column 42. Was expecting one of:
> <NEWLINE> ...     ";" ...     "," ...     "as" ...     ";" ...
> 
> 
> alguien podria sugerirme como trabajar con algo que se asemeje con
> constantes, o como resolver este error?
> 
> Gracias
> 
> 




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