We can convert from hex str to bytes with bytes.fromhex class method:

>>> b = bytes.fromhex("ff")

But we cannot convert from hex binary:

>>> b = bytes.fromhex(b"ff")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: must be str, not bytes

We don't have bytes_instance.tohex() instance method.
But we have binascii.hexlify. But binascii.hexlify does not return an str. It returns a bytes instance instead.

>>> import binascii
>>> binascii.hexlify(b)
b'ff'

Its reverse function binascii.unhexlify can be used on str and bytes too:

>>> binascii.unhexlify(b'ff')
b'\xff'
>>> binascii.unhexlify('ff')
b'\xff'

Questions:

* if we have bytes.fromhex() then why don't we have bytes_instance.tohex() ?
* if the purpose of binascii.unhexlify and bytes.fromhex is the same, then why allow binary arguments for the former, and not for the later?
* in this case, should there be "one obvious way to do it" or not?


--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to