static variables in Python?

Russ P. Russ.Paielli at
Wed Jul 30 03:33:30 CEST 2008

On Jul 29, 1:40 pm, kj <so... at> wrote:
> Yet another noob question...
> Is there a way to mimic C's static variables in Python?  Or something
> like it?  The idea is to equip a given function with a set of
> constants that belong only to it, so as not to clutter the global
> namespace with variables that are not needed elsewhere.
> For example, in Perl one can define a function foo like this
> *foo = do {
>   my $x = expensive_call();
>   sub {
>     return do_stuff_with( $x, @_ );
>   }
> };
> In this case, foo is defined by assigning to it a closure that has
> an associated variable, $x, in its scope.
> Is there an equivalent in Python?
> Thanks!
> kynn
> --
> NOTE: In my address everything before the first period is backwards;
> and the last period, and everything after it, should be discarded.

If the constant parameters are really only needed in one particular
function, you can use default function arguments. An added benefit is
that you can override them with another value if necessary.

def fun(x, y, parameter1=0, parameter2=1):

More information about the Python-list mailing list