Hard to find bugs, misleading exceptions

Chermside, Michael mchermside at ingdirect.com
Tue Feb 25 09:59:52 EST 2003


> >>> l=[
> ...  (1,2),
> ...  (3,4),
> ...  (5,6)  # note missing comma
> ...  (7,8)
> ... ]
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
> TypeError: 'tuple' object is not callable

(1) Use pychecker. (If it doesn't catch this problem,
  it SHOULD.)

(2) Also, type it like this:

    el = [
        (1,2),
        (3,4),
        (5,6),
        (7,8),   # note USE of comma
    ]

  The use of a comma after EVERY element, instead of
  every one but the last, will save you lots of bugs
  like this when cutting-and-pasting or adding new
  items to the list. Fortunately, it's LEGAL syntax
  in Python (although not, unfortunately, in C, Java,
  and some other things I have to work with).

-- Michael Chermside






More information about the Python-list mailing list