Ian Kelly wrote:
class LessThanFilter:
def __init__(self, the_list):
self._the_list = the_list
def __getitem__(self, bound):
return [x for x in self._the_list if x < bound]
filter = LessThanFilter([10, 20, 30, 40, 50])
filter[25] += [15, 17, 23]
Should that last line not raise an exception?
In this case it will fail to catch what is probably an error,
but you can't expect the language to find all your bugs for
you. If you wrote the same bug this way:
filter[25].extend([15, 17, 23])
it wouldn't be caught either.
What's happening is that we're trying to use the syntax
a += b to mean two different things:
1) Shorthand for a = a + b
2) A way of expressing an in-place modification, such
as a.extend(b)
Case (2) is not really an assignment at all, so arguably
it shouldn't require the LHS to support assignment.
--
Greg
--
https://mail.python.org/mailman/listinfo/python-list