Jeffrey Barish wrote:
class super: '''All the generic stuff goes here'''
Better not to call the class super: it's a built-in type
class linux_subclass(super): def func(self): '''linux-specific function defined here'''
class windows_subclass(super): def func(self): '''windows-specific function defined here'''
but the general idea of specializing is sound
And then in main I have:
inst = eval('%s_subclass' % sys.platform)(args)
It would be better to make this an explicit mapping:
clsmap = {'win32': windows_subclass, 'linux': linux_subclass} try: inst= clsmap[sys.platform]() except KeyError: ...
However, you will also run into the problem that sys.platform can report all sorts of different strings - and not all the differences may be meaningful to you. For example, I gather that sys.platform on linux can return something like linux-i386. So you'll probably end up doing something like:
clsmap = {'win': windows_subclass, 'lin': linux_subclass} try: inst= clsmap[sys.platform[:3]]() except KeyError: ...
Michael
-- http://mail.python.org/mailman/listinfo/python-list