optparse:支持整数参数的附加前缀吗?

2024-05-14 20:59:08 发布

您现在位置:Python中文网/ 问答频道 /正文

optparse支持整数参数的“0b”、“0”和“0x”前缀,分别表示二进制、八进制和十六进制。我需要支持一些附加的前缀,包括二进制的“%”和十六进制的“$”。你知道吗

一种方法是修补optparse._parse_num,如下所示:

oldParseNum = optparse._parse_num
def newParseNum(val, type):
    val = re.sub('^%', '0b', val)
    val = re.sub('^\$', '0x', val)
    return oldParseNum(val, type)
optparse._parse_num = newParseNum

虽然这确实有效,但它似乎相当脆弱。有更好的方法吗?你知道吗


Tags: 方法re参数returnparsedeftype二进制
1条回答
网友
1楼 · 发布于 2024-05-14 20:59:08

您可以定义自己的选项处理程序/-回调:

parser.add_option("-c", action="callback", callback=my_callback)

处理特殊情况或扩展语法。你知道吗

查看一下documentation以确定这是否足以满足您的需要,以及是否比(猴子式)修补更好。你知道吗

相关问题 更多 >

    热门问题