On 13 Nov, 18:16, Joe Strout <[EMAIL PROTECTED]> wrote: > One thing I miss as I move from REALbasic to Python is the ability to > have static storage within a method -- i.e. storage that is persistent > between calls, but not visible outside the method. I frequently use > this for such things as caching, or for keeping track of how many > objects a factory function has created, and so on.
Why not use a module global? It isn't hidden, but it is quite a clean approach. Modifying your example... spam_count = 0 def spam(): global spam_count spam_count += 1 return "spam " * spam_count [...] > This doesn't expose any uncleanliness outside the function at all. I wouldn't be too worried about that. Although namespaces can become somewhat crowded with all these extra names, there can be benefits in exposing such names, too, but if you find this too annoying, it could be advisable to collect these entries and put them in another namespace, maybe a class or a module. Paul -- http://mail.python.org/mailman/listinfo/python-list