我已成立了一个脚本argparse这给了我下面的命名空间中的位置参数:从argparse作为函数名
Namespace(action='list', input='all', target='domain')
我做了这是根据positionals叫了几个功能,并在那一刻我有一个工作情况通过像这样的代码导语美其名曰:
if args.action == 'list':
if len(sys.argv) == 2:
parser.print_help()
sys.exit(0)
elif args.target == 'domain':
domain_list()
elif args.target == 'forwarding':
forwarding_list()
elif args.target == 'transport':
transport_list()
elif args.target == 'user':
user_list()
else:
all_list()
我知道这是可以做到的方式,方法比这更好;但是由于我对Python的知识有限,似乎无法解决这个问题。
回顾:我想是这样,如果在所有可能的(伪)
if args.action == 'add':
target = args.target
target_add()
其中target_add()
有点像domain_add()
。
在此先感谢!
会是这样的帮助呢? http://stackoverflow.com/questions/3061/calling-a-function-from-a-string-with-the-functions-name-in-python – favoretti
你可能会对[docopt]感兴趣(https:// github .com/docopt/docopt),它是“为人类辩护”。 –
@favoretti;是的,据我所见,这很像这个问题的公认答案:) @PauloScardine在阅读了很多关于它的文档和大量问题后,我了解了argparse,但是,我陷入了困境关于python代码本身的内部工作^ _^ –