2011-09-21 82 views
4

我希望help選項的作用與--help相同。如何使`help`與argparse中的`--help`相同

旁註:我創建了一個程序,其命令行與svn或hg相同。我設法用subparsers做到這一點。不過,我想讓事情一致。這就是爲什麼我想要help工作。

+0

你的意思是你要能夠調用'幫助(「mymodule中」)'或'幫助(MyModule的) '? – Remi

+1

嚴格地說,'help'是一個參數,選項分別以' - '和' - '爲前綴。你的意思是像'如果'幫助'在sys.argv:sys.exit('幫助...')''? – jena

+0

@Remi我不知道 – SamK

回答

4

您可以執行以下操作來創建一個別名,使program help行爲一樣program --help

import argparse 

def help(args): 
    args.parser.print_help() 

parser = argparse.ArgumentParser(description='my program') 
subparsers = parser.add_subparsers() 
p_help = subparsers.add_parser('help') 
p_help.set_defaults(func=help, parser=parser) 

args = parser.parse_args() 
args.func(args) 
0

在我看來,你想定義help作爲另一個子分析器。我會天真地說,你可以將它鏈接到print_help()函數,該函數將複製標準的--help的輸出,但我想知道是否有方法調用本地help()函數。

+0

我也是這樣。同時,我認爲最有效的方法就是爲每個參數創建一個子分析器(就像--help所做的那樣)。 – SamK