Newbie: anything resembling static?

Magnus Lie Hetland mlh at furu.idi.ntnu.no
Mon Feb 10 23:16:05 EST 2003


In article <4da3e801.0302101031.752f7121 at posting.google.com>, Phil
Rittenhouse wrote:
[snip]
>What I've been wondering lately is: could we add a 'static' keyword
>to the language to accomplish the same thing?
>
>You would use it in a way similar to the 'global' keyword, for example:
>
>def foo():
>   static count = 0
>   print count

This sort of local state is specifically what objects are for... I'd
rather advocate using them than adding a keyword for this...

However, if you want to simulate statics, default arguments are a
possibility:

def foo(count=[0]):
    print count[0]
    count[0] += 1

Default arguments are initialized when the functions are defined, and
may be manipulated subsequently (and are stored just like static
variables). Not very clean/elegant, IMO, but possible...

-- 
Magnus Lie Hetland               "Nothing shocks me. I'm a scientist." 
http://hetland.org                                   -- Indiana Jones




More information about the Python-list mailing list