On Wed, 18 Apr 2012 17:16:08 -0700, Miki Tebeka wrote: >> So I'm interested in suggestions/examples where a user can update a >> config file to specify by which means they want (in this case) the ssh >> functionality to be supplied. > You can do something like that (it's called a factory): > > COMMANDS = { > 'win32': 'win32 command goes here', > 'linux2': 'linux command goes here', > 'darwin': 'OSX command goes here', > } > def get_command(): > return COMMANDS.get(sys.platform)
Your suggestion is good, but I think your terminology is off. COMMANDS is a dispatch table, or a lookup table, and get_command merely does a look- up in that table. A factory dynamically builds a new object on request, rather than always return the same old object time and time again. So a factory might look like this: def get_command(flag1=True, flag2=False, flag3=True): cmd_parts = [COMMANDS.get(sys.platform)] if flag1: cmd_parts.append('--some_option') else: cmd_parts.append('--another_option') cmd_parts.append('-x') if flag2: cmd_parts.append('spam') else: cmd_parts.append('ham') if flag3: cmd_parts.append('--foo=bar') cmd = ' '.join(cmd_parts) return cmd -- Steven -- http://mail.python.org/mailman/listinfo/python-list