bytes.fromhex() 与 binascii.unhexlify() 有什么区别

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】
`bytes.fromhex()
` 和 `binascii.unhexlify()
` 都是用于将十六进制字符串转换为字节数据的方法,它们的功能相似,但有一些细微的区别。
1. `bytes.fromhex()
` 是 Python 3 中的内置方法,而 `binascii.unhexlify()
` 是 Python 2 和 Python 3 中的 `binascii
` 模块提供的函数。因此,如果你的代码需要在 Python 2 和 Python 3 中同时运行,可以选择使用 `binascii.unhexlify()
`。
2. `bytes.fromhex()
` 返回的是字节对象(`bytes
` 类型),而 `binascii.unhexlify()
` 返回的是字节串(`str
` 类型)。在 Python 3 中,这两者的区别不大,因为 Python 3 中的字节对象和字节串本质上是一样的。但在 Python 2 中,字节串与 Unicode 字符串是不同的类型。
3. `bytes.fromhex()` 的参数可以是包含空格的十六进制字符串,而 `binascii.unhexlify()` 的参数必须是不包含空格的十六进制字符串。这是因为 `bytes.fromhex()` 在内部会自动去除空格,而 `binascii.unhexlify()` 不会。
总的来说,两者在功能上是类似的,但在不同的上下文中可能会选择使用不同的方法。如果你只在 Python 3 中工作,并且想要一种更简洁的方法,可以选择使用 `bytes.fromhex()`;如果你需要在 Python 2 和 Python 3 中兼容,并且希望使用 `binascii.unhexlify()` 来避免潜在的兼容性问题,也是一个不错的选择。
布施恩德可便相知重
微信扫一扫打赏
支付宝扫一扫打赏