# this example was cut from the book import os, cenviron # get C module class Environ: def __getattr__(self, name): # proxy class return getattr(cenviron, name) # pass to C module class EnvSync(Environ): # extend by wrapping def put(self, name, value): os.environ[name] = value # put in os.environ too self.putenv(name, value) # do C putenv def get(self, name): value = self.getenv(name) # do C getenv os.environ[name] = value # synch up os.environ return value Env = EnvSync()