[Python-es] Constantes en Python

Moises Brenes moises.brenes en gmail.com
Lun Sep 20 20:39:28 CEST 2010


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

    self.__dict__[name] = value

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

    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


-- 
http://blog.mbrenes.com

El individuo ha luchado siempre para no ser absorbido por la tribu. Si
lo intentas, a menudo estarás solo, y a veces asustado. Pero ningún
precio es demasiado alto por el privilegio de ser uno mismo. -
Friedrich Nietzsche.


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