我有很多univ.Integer(),但是想用十六进制打印它们,它们很容易与基板的解码相关。
我该怎么做呢?
其中一个例子是
namedtype.NamedType('vendor-id', univ.Integer())
namedtype.NamedType('device-id', univ.Integer())
namedtype.NamedType('subven-id', univ.Integer())
namedtype.NamedType('subsys-id', univ.Integer())任何漂亮打印的选项,这将把所有整数转换为十六进制?或者给univ.Integer做一些显示技巧的子程序?
发布于 2017-04-04 05:47:23
这样prettyPrint是没有选择的。不过,我可以给你两个想法。
如果您需要漂亮地打印特定的整数,而不是使用带嵌入式整数的整棵树组合对象,则只需使用hex()即可。
>>> Integer(123).prettyPrint()
'123'
>>> hex(int(Integer(123)))
'0x7b'否则,您可以像这样修改pyasn1 Integer.prettyOut()方法:
>>> class MyInteger(Integer):
... def prettyOut(self, value):
... return hex(value)
...
>>> MyInteger(123).prettyPrint()
'0x7b'
>>> https://stackoverflow.com/questions/43196175
复制相似问题