I want to subclass list so that each value in it is calculated at call
time.  I had initially thought I could do that by defining my own
__getitem__, but 1) apparently that's deprecated (although I can't
find that; got a link?), and 2) it doesn't work.

For example:

>>> class Foo(list):
...     def __getitem__(self, index):
...             return 5
...
>>> a = Foo([1, 2, 3, 4, 5])
>>> print a
[1, 2, 3, 4, 5]
>>> print a[2:4]
[3, 4]
>>> print a[3]
5

I first expected that to instead behave like:

>>> print a
[5, 5, 5, 5, 5]
>>> print a[2:4]
[5, 5]

Is there a "right" way to do this?
--
Kirk Strauser
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to