我已经设置了一个带有argparse的脚本,它给了我以下NameSpace:
Namespace(action='list', input='all', target='domain')
我已经制作了一些根据位置调用的函数,目前我有一个工作情况,通过调用它们像这样的代码:
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()
。
提前致谢!
答案 0 :(得分:0)
听起来行动可能是list
或add
,而target
可能是domain
,forwarding
,transport
或{{ 1}}。是的,如果必须手动列出每个选项组合的作用,最终会得到很多user
代码。
以下是一种简化此方法的方法:
if..then..else
或('domain','list')
。值是关联的函数对象。('transport','add')