On Dec 9, 2:08 pm, Roy Smith <[EMAIL PROTECTED]> wrote: > I've got a class with a class variable: > > class Foo: > _map = {} > > How do I make sure this only gets initialized the *first* time the > module containing the class is imported? What appears to be happening > as it stands is each time the module gets imported, Foo._map get re- > initialized.
What you're asking for is actually the default behaviour. The Foo class should only be created once, on the first import, and all subsequent imports should refer to it: foo.py: class Foo: _map = {} a.py: from foo import Foo Foo._map['a'] = 1 b.py: from foo import Foo print Foo._map c.py: import a import b This outputs "{'a': 1}", as expected. The Foo._map that b.py prints is the same Foo._map that a.py has modified. You might need to provide some more details about your code. -- http://mail.python.org/mailman/listinfo/python-list