pyasn1 prettyPrint() - 以十六进制显示整数
pyasn1 prettyPrint() - display integers in hex
我有很多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 以获得一些显示技巧?
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'
>>>
我有很多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 以获得一些显示技巧?
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'
>>>