On Oct 29, 2012 7:10 AM, "Andrew Robinson" <andr...@r3dsolutions.com> wrote: > I will be porting Python 3.xx to a super low power embedded processor > (MSP430), both space and speed are at a premium. > Running Python on top of Java would be a *SERIOUS* mistake. .NET won't even > run on this system. etc.
If that's the case, then running Python at all is probably a mistake. You know the interpreter alone has an overhead of nearly 6 MB? > Yes, I realize that. > But, why can't I just overload the existing __getitem__ for lists and not > bother writing an entire class? You can just overload that one method in a subclass of list. Being able to monkey-patch __getitem__ for the list class itself would not be advisable, as it would affect all list slicing anywhere in your program and possibly lead to some unexpected behaviors. > Hmmm.. > Let's try your example exactly as shown... > > "hello world"[aslice] > > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > NameError: name 'aslice' is not defined > > WOW. Cool. > Where did the blanks *actually* get filled in? Or HOW WILL they in your next > post? It appears that Steven omitted the definition of aslice by mistake. It looks like it should have been: aslice = slice(4, None, 2) > Looking at some of the online programming notes -- a slice apparently > doesn't use an integer storage variable that is capable of arbitrary > expansion. =-O -- and hence, won't work for very large sized lists. That > actually explains some crashes I have noted in the past when working with 20 > million element lists that I wanted a slice of. I had *plenty* of ram on > that system. 20 million is nothing. On a 32-bit system, sys.maxsize == 2 ** 31 - 1. If the error you were seeing was MemoryError, then more likely you were running into dynamic allocation issues due to fragmentation of virtual memory. -- http://mail.python.org/mailman/listinfo/python-list