def foo():
    print('called foo')

def bar():
    print('called bar')
functions = [foo, bar]
functions = {function.__name__: function for function in functions}
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--func', choices=list(functions.keys()),
    required=True, help='Choose one of the specified function to be run.')
args = parser.parse_args()
functions[args.func]()
How to use argparse arguments as function names