我已成立了一個腳本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代碼本身的內部工作^ _^ –