2009-05-19 5 views
3

여기 파이썬 코드에서 가변 인수에 대한 콜백을 구현했습니다.
hxxp : //docs.python.org 이 같은 옵션을 추가Optparse : 변수 arg 콜백 액션에 대한 사용은 추가 매개 변수가 필요하지 않음을 나타냅니다.

/library/optparse.html#callback-example-6-variable-arguments :

parser.add_option("-c", "--callback", dest="vararg_attr", action="callback", callback=vararg_callback) 

문제는 옵션이 추가로 필요로하는 사용자에 대한 표시가 없다는입니다 입력 :

(210)

사용량이 같은 인쇄 할 수 있도록 optparse의의 사용을 변경할 수있는 방법이 있나요 : 당신의 도움에 대한

-c=LIST, --callback=LIST 

감사합니다!

답변

2

이 monkeypatching을 포함하고 최적의 솔루션이 될하지 않을 수 있습니다. 다른 한편으로는, 그것은 작동하는 것처럼 보인다.

from optparse import OptionParser, Option 

# Complete hack. 
Option.ALWAYS_TYPED_ACTIONS += ('callback',) 

def dostuff(*a): 
    pass 

parser = OptionParser() 
parser.add_option("-c", 
        "--callback", 
        dest="filename", 
        action="callback", 
        callback=dostuff, 
        metavar='LIST', 
        help='do stuff', 
       ) 

(options, args) = parser.parse_args() 

출력 : 유형 없음 (기본값)없는 경우

Usage: opt.py [options] 

Options: 
    -h, --help   show this help message and exit 
    -c LIST, --callback=LIST 
         do stuff 
+0

감사합니다! 이것은 나를 위해 잘 작동합니다. –

1

사용자 metavar 키워드 인수 :

parser.add_option("-c", "--callback", dest="vararg_attr", action="callback", callback=vararg_callback, metavar='LIST') 

참조 : http://docs.python.org/library/optparse.html

+1

감사합니다,하지만 난 이미 시도하고 그것은 작동하지 않았다 ... –

0

optparse의가 추가 인수에 대한 표시를 표시하지 않습니다. 당신이 유형을 지정하고 도움에 표시됩니다 metavar 경우

parser.add_option("-c", "--callback", 
        dest="vararg_attr", 
        type="string", 
        metavar="LIST", 
        action="callback", 
        callback=vararg_callback, 
        help="do stuff") 

출력 :

Options: 
    -h, --help   show this help message and exit 
    -c LIST, --callback=LIST 
         do stuff