我认为标题大体上总结了我想做的事情。我对python非常满意,会说我真的不知道我的选择是什么。
如果我有一个像这样调用的python脚本,请这样说:
python myscript.py --this_takes_an_unsigned_hex_value 0x80018001
我希望将0x80018001
解释为也是无符号的32位十六进制值。
我搜索了其他几乎可以解决但并非完全可行的答案。
类似这样的参数:
parser.add_argument('--this_takes_an_unsigned_hex_value', help='--this_takes_an_unsigned_hex_value value', type=lambda x: int(x,0))
如果值为0x7FFF7FFF
,则将起作用,但对于设置了最高有效位的任何内容而言,
都将起作用。如果我尝试0x80018001
,我会得到:
root:CRITICAL: <class 'OverflowError'>: signed integer is greater than maximum
最简单的方法是停止对我传递的值进行这种带符号的解释?它应该适合十六进制字符串的无符号解释。