Steven D'Aprano <st...@pearwood.info> writes:

> As far as I can see, in practice, people talk about obj[i] as the item
> at index i, not the item at subscript i -- the term "subscript" in
> this context seems to be rare to non-existent except for the error
> message.

Presumably, the same people would also call ‘obj[i]’ the item at *key*
‘i’, if ‘obj’ is a dictionary. For an object that supports neither
indexes nor keys, though, how is Python to know which the user meant?
It's a single operation as far as the parser is concerned, so there
needs to be a single term for it. That term is “subscript”.

Your point about the awkward word “unsubscriptable” is well-taken,
though. Perhaps a simple improvement to the message wording:

    >>> foo = 3
    >>> foo[6]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'int' object does not support subscripts
    >>> foo['spam']
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'int' object does not support subscripts

-- 
 \                              “I lost a button-hole.” —Steven Wright |
  `\                                                                   |
_o__)                                                                  |
Ben Finney

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to