まずPythonのオブジェクトがprintに渡されたときに、そのオブジェクトの__str__メソッドが呼ばれます。
__str__が存在しない場合は__repr__メソッドが呼ばれます。
__repr__メソッドは、Pythonでそのオブジェクトを表現可能なPython式の文字列を返すためのメソッドです。
これはなぜでしょうか?
byteクラスの__str__と__repr__メソッドがASCIIで表現できるコードはASCIIで表現するといった仕様になっているためです。
なぜ、そんな仕様なのかと言えば、そちらの方が便利だからです。
試しにrepr(b'\x64')と打ってみて下さい、"b'd'"と返ってくるはずです。
また、b'\x64'と表示させる方法はありますでしょうか?
これについて簡潔にする方法は、私の知る限りありません。
どうしても16進数で表記したいのであれば、reprを頼らずに独自にフォーマットするしかないと思います。
python
1r"\x{:x}".format(100)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/23 11:42