import os, cenviron # get C module class Environ: def getenv(self, name): # C module wrapper class return cenviron.getenv(name) # delegate to C module def putenv(self, name, value): cenviron.putenv(name, value) class EnvSync(Environ): # extend by subclassing def putenv(self, name, value): os.environ[name] = value # put in os.environ too Environ.putenv(self, name, value) # do superclass putenv def getenv(self, name): value = Environ.getenv(self, name) # do superclass getenv os.environ[name] = value # integrity check return value Env = EnvSync() # make one instance