HMS Surprise wrote: > > In the file snippet below the value for the global hostName is > determined at runtime. Functions imported from the parent baseClass > file such as logon also need access to this variable but cannot see it > the with the implementation I have attempted here.
Use a class variable: class baseClass: hostName = None # undefined yet def someFunc(self): assert self.hostName is not None, "hostname not set yet" ... # use hostName here class temp(baseClass): def runTest(self): baseClass.hostName = getHostName() ... or a global variable: baseClass.py: hostName = None class baseClass: def someFunc(self): assert hostName is not None .... testme.py: import baseClass class temp(baseClass.baseClass): .... baseClass.hostName = getHostName() although neither solution strikes me as very elegant. I would normally pass the hostname to the constructor of baseClass or use a separate 'settings' module. Global variables are per-module. Use the "global" keyword when assigning a global variable in the 'current' module. Global variables of other modules are properties of the module, use <module>.<name>. > > Also, functions in this file and in the imported parent class need > PyHttpTestCase. Does there need to be an import statement in both > files? Yes. Don't worry, the work is done only once. Regards, Tijs -- http://mail.python.org/mailman/listinfo/python-list