gpt4 book ai didi

python - 在字符串格式中使用 numpy.bytes_ 对象时超出最大递归深度

转载 作者:行者123 更新时间:2023-11-28 17:47:53 24 4
gpt4 key购买 nike

代码应该不言自明:

$ python
Python 3.3.0 (default, Dec 22 2012, 21:02:07)
[GCC 4.7.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> '{}'.format(np.bytes_(b'Hello'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
RuntimeError: maximum recursion depth exceeded while calling a Python object
>>> np.version.version
'1.7.0'

两者都是 strrepr返回 "b'Hello'"np.bytes_(b'Hello') ,我可以 print(np.bytes_(b'Hello'))很好,但在格式字符串中它会陷入递归循环。

我是不是很愚蠢,或者它确实是它看起来的样子,即 numpy 中的一个问题?即使是这样,我也不太明白发生了什么。有人可以解释一下吗?

我还没有用 Python 2 重现它。

最佳答案

{} 的行为是调用 np.bytes_(b'Hello').__format__()。似乎存在 __format__ 调用自身的错误。看这个related ticket

这是一个解决方法。

Python 3.2.3 (default, Oct 19 2012, 19:53:57) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> '{}'.format(np.bytes_(b'Hello'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
RuntimeError: maximum recursion depth exceeded while calling a Python object
>>> '{!s}'.format(np.bytes_(b'Hello'))
"b'Hello'"
>>> '{!r}'.format(np.bytes_(b'Hello'))
"b'Hello'"

关于python - 在字符串格式中使用 numpy.bytes_ 对象时超出最大递归深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15466274/

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