New statement proposal for Python (fwd)

Lulu of the Lotus-Eaters mertz at gnosis.cx
Thu Jun 14 15:10:30 EDT 2001


David LeBlanc <whisper at oz.nospamnet> wrote:
|One thing that bugs me about Python is that there's no really good way to
|have named constants so that magic numbers can be avoided. Assigning to a
|variable that (should) never changes is not the same (i.e. the "should
|never" part).

One way to solve the "-should- never change" thing is to use the Xoltar
Toolkit's functional module, and its 'Bindings' class.  Of course, I
happened to have contributed that class to Bryn Keller, so I may be
biased... and moreover, I happened to have written an article that, in
part, discusses this:
<http://www-106.ibm.com/developerworks/linux/library/l-prog2.html>) :-).

Here's an example from the article:

  Listing 2. Python FP session with guarded rebinding
  ------------------------------------------------------------------------
  >>> from functional import *
  >>> let = Bindings()
  >>> let.car = lambda lst: lst[0]
  >>> let.car = lambda lst: lst[2]
  Traceback (innermost last):
    File "<stdin>", line 1, in ?
    File "d:\tools\functional.py", line 976, in __setattr__
      raise BindingError, "Binding '%s' cannot be modified." % name
  functional.BindingError:  Binding 'car' cannot be modified.
  >>> car(range(10))
  0

An even shorter spelling is:

  _= Bindings()
  _.SPAM = 'eggs'
  myvar = _.SPAM + "more eggs"

HTH.

Yours, Lulu...




More information about the Python-list mailing list