On Fri, Feb 24, 2012 at 2:16 PM, Rodrick Brown <rodrick.br...@gmail.com> wrote: > I have a bunch of sub routines that run independently to perform various > system checks on my servers. I wanted to get an opinion on the following code > I have about 25 independent checks and I'm adding the ability to disable > certain checks that don't apply to certain hosts. > > > m = { 'a': 'checkDisks()', > 'b': 'checkMemSize()', > 'c': 'checkBondInterfaces()' > } > > parser = argparse.ArgumentParser(description='Parse command line args.') > parser.add_argument('-x', action="store", dest="d") > r = parser.parse_args(sys.argv[1:]) > > runlist = [ c for c in m.keys() if c not in r.d ] > for runable in runlist: > eval(m[runable]) > > I'm using temp variable names for now until I find an approach I like. > > Is this a good approach ? It doesn't look too pretty and to be honest feels > awkward?
You should make use of the fact that functions are first-class objects in Python: m = { 'a': checkDisks, 'b': checkMemSize, 'c': checkBondInterfaces } # … for runable in runlist: m[runable]() Cheers, Chris -- http://mail.python.org/mailman/listinfo/python-list