Python报”TypeError: ‘bytes’ object is not callable “的原因以及解决办法

错误分析

在 Python 中,bytes 类型是一个不可变的二进制序列。错误提示“TypeError: 'bytes' object is not callable”表示将 bytes 对象当做可调用的函数(函数调用)使用了。

这种错误通常发生在以下情况:

将 bytes 对象当做函数调用

示例代码:

s = b"hello world"
result = s("utf-8", "strict")  # 报错,bytes对象不可调用函数

将 bytes 对象当做方法调用

示例代码:

s = b"hello world"
result = s.find("h")  # 报错,bytes对象不支持该方法

解决方法

不要把 bytes 对象当做函数调用

如果你想从 bytes 对象中获取字符串,可以使用 decode 方法:

s = b"hello world"
result = s.decode("utf-8", "strict")
print(result)  # 输出 "hello world"

不要把 bytes 对象当做方法调用

如果你想从 bytes 对象中查找某个字符或子串,可以先将其转换成字符串,然后再查找:

s = b"hello world"
result = s.decode("utf-8", "strict").find("h")
print(result)  # 输出 0

或者可以使用 b.find() 方法,但需要注意它返回的是字节串中该子序列的开始位置,而不是字符串中的位置:

s = b"hello world"
result = s.find(b"h")
print(result)  # 输出 0

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python报”TypeError: ‘bytes’ object is not callable “的原因以及解决办法 - Python技术站

(0)
上一篇 2023年3月18日
下一篇 2023年3月18日

相关文章

合作推广
合作推广
分享本页
返回顶部