gpt4 book ai didi

python - 解决不同版本中的 Python 错误

转载 作者:太空狗 更新时间:2023-10-30 00:37:26 25 4
gpt4 key购买 nike

我在 Python 中遇到了 bytearray.fromhex 函数的错误(至少在 2.6.1 中是这样)。如果您尝试文档字符串中的示例,就会发生这种情况:

>>> bytearray.fromhex('B9 01EF')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: fromhex() argument 1 must be unicode, not str

此示例在 Python 2.7 中运行良好,我想知道解决该问题的最佳编码方式。我不想总是转换为 unicode,因为它会影响性能,而且测试正在使用的 Python 版本感觉不对。

那么有没有更好的方法来解决这类问题,以便它适用于所有版本,最好不会降低工作 Python 的速度?

最佳答案

对于这种情况,最好记住如果不抛出异常,try block 是非常便宜的。所以我会使用:

try:
x = bytearray.fromhex(some_str)
except TypeError:
# Work-around for Python 2.6 bug
x = bytearray.fromhex(unicode(some_str))

这让 Python 2.6 的性能受到了很小的影响,但 2.7 根本不会受到影响。这当然比显式检查 Python 版本更可取!

错误本身(它确实看起来确实是一个错误)仍然存在于 Python 2.6.5 中,但我在 bugs.python.org 中找不到任何提及它的地方。 ,所以它可能在 2.7 中被意外修复了!它看起来像是一个向后移植的 Python 3 功能,但在 2.6 中没有正确测试。

关于python - 解决不同版本中的 Python 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3670816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com