I recently needed to pretty print something from Python, but I needed the integers printed in hex rather than decimal. I overloaded the PrettyPrinter
class to do it. Here’s how:
#!/usr/bin/env python3
from pprint import PrettyPrinter
class HexPrettyPrinter(PrettyPrinter):
def format(self, object, context, maxlevels, level):
repr, readable, recursive = PrettyPrinter.format(self, object, context, maxlevels, level)
if isinstance(object, int):
return “{0:x}”.format(object), readable, recursive
else:
return repr, readable, recursive
You’d do something like this (untested):
from hex_pprint import HexPrettyPrinter
hpp = HexPrettyPrinter()
hpp.pprint([1, 2, 3, 4, dict(a=1,b=2)])
Post a Comment