static variables in Python?

Daniel da Silva ddasilva at umd.edu
Wed Jul 30 00:30:37 EDT 2008


This is the solution I suggest. It is fairly trivial, and works by
introducing the "self.static" namespace for a class's static
variables, in contrast to "self" for the class's instance variables.

 -----------------------------------

class Static(object):  pass
personStatic = Static()

class Person:
    static = personStatic

    def __init__(self, name, age):
        self.name   = name
        self.age    = age

    def setVersion(self, version):
        self.static.version = version

    def getVersion(self):
        return self.static.version
 -----------------------------------

Daniel

On Tue, Jul 29, 2008 at 4:40 PM, kj <socyl at 987jk.com.invalid> 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.
> --
> http://mail.python.org/mailman/listinfo/python-list
>



More information about the Python-list mailing list